コード:
.file "cpb_main_test.c"
.section .rdata,"dr"
LC0:
.ascii "test\0"
LC1:
.ascii "aaa\0"
LC2:
.ascii "%d %d %d %d\0"
.text
.p2align 2,,3
.globl _primeJudge
.def _primeJudge; .scl 2; .type 32; .endef
_primeJudge:
LFB47:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
pushl %edi
.cfi_def_cfa_offset 12
.cfi_offset 7, -12
pushl %esi
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
pushl %ebx
.cfi_def_cfa_offset 20
.cfi_offset 3, -20
subl $92, %esp
.cfi_def_cfa_offset 112
movl $13, (%esp)
call _IsClipboardFormatAvailable@4
.cfi_def_cfa_offset 108
pushl %ebx
.cfi_def_cfa_offset 112
testl %eax, %eax
jne L71
L67:
xorl %eax, %eax
L64:
addl $92, %esp
.cfi_remember_state
.cfi_def_cfa_offset 20
popl %ebx
.cfi_restore 3
.cfi_def_cfa_offset 16
popl %esi
.cfi_restore 6
.cfi_def_cfa_offset 12
popl %edi
.cfi_restore 7
.cfi_def_cfa_offset 8
popl %ebp
.cfi_restore 5
.cfi_def_cfa_offset 4
ret
.p2align 2,,3
L71:
.cfi_restore_state
movl 112(%esp), %edx
movl %edx, (%esp)
call _OpenClipboard@4
.cfi_def_cfa_offset 108
pushl %ecx
.cfi_def_cfa_offset 112
testl %eax, %eax
je L67
movl $13, (%esp)
call _GetClipboardData@4
.cfi_def_cfa_offset 108
pushl %edx
.cfi_def_cfa_offset 112
movl %eax, %ebx
testl %eax, %eax
je L68
movl %eax, (%esp)
call _GlobalLock@4
.cfi_def_cfa_offset 108
pushl %ebp
.cfi_def_cfa_offset 112
movl %eax, %esi
testl %eax, %eax
je L68
movl %eax, (%esp)
call _lstrlenW@4
.cfi_def_cfa_offset 108
pushl %edi
.cfi_def_cfa_offset 112
movl %eax, 32(%esp)
call _GetProcessHeap@0
movl 32(%esp), %ecx
leal 2(%ecx,%ecx), %edx
movl %edx, 8(%esp)
movl $0, 4(%esp)
movl %eax, (%esp)
call _HeapAlloc@12
.cfi_def_cfa_offset 100
subl $12, %esp
.cfi_def_cfa_offset 112
movl %eax, %edi
testl %eax, %eax
je L4
movl %esi, 4(%esp)
movl %eax, (%esp)
call _lstrcpyW@8
.cfi_def_cfa_offset 104
subl $8, %esp
.cfi_def_cfa_offset 112
movl %ebx, (%esp)
call _GlobalUnlock@4
.cfi_def_cfa_offset 108
pushl %ecx
.cfi_def_cfa_offset 112
call _CloseClipboard@0
movl 120(%esp), %edx
movl 4(%edx), %eax
leal -1(%eax), %edx
cmpl $2097150, %edx
ja L5
sall $10, %eax
shrl %eax
cmpl %eax, 32(%esp)
jle L5
movl 120(%esp), %ecx
movl 8(%ecx), %edx
testl %edx, %edx
jne L8
movl %eax, 32(%esp)
L6:
xorl %eax, %eax
xorl %ebp, %ebp
.p2align 2,,3
L21:
leal -1(%eax), %edx
cmpl $1, %edx
jbe L65
movw (%edi,%ebp,2), %ax
movzwl %ax, %edx
subl $48, %edx
cmpl $9, %edx
jbe L29
cmpw $46, %ax
je L72
L34:
xorl %eax, %eax
L11:
incl %ebp
cmpl 32(%esp), %ebp
jne L21
decl %eax
jne L8
cmpw $0, (%edi,%ebp,2)
jne L8
movl 44(%esp), %eax
xorl %ebx, %ebx
.p2align 2,,3
L24:
movw (%edi,%eax,2), %dx
movzwl %dx, %ecx
subl $48, %ecx
cmpl $9, %ecx
ja L23
movb %dl, 48(%esp,%ebx)
incl %ebx
L23:
incl %eax
cmpl %ebp, %eax
jl L24
movb $0, 48(%esp,%ebx)
movzbl 48(%esp), %esi
leal -48(%esi), %eax
cmpb $9, %al
ja L37
leal 48(%esp), %ebp
xorl %eax, %eax
xorl %edx, %edx
.p2align 2,,3
L26:
movl %eax, %ecx
movl %edx, %ebx
addl %eax, %ecx
adcl %edx, %ebx
shldl $3, %eax, %edx
sall $3, %eax
addl %eax, %ecx
adcl %edx, %ebx
movl %esi, %edx
movsbl %dl, %eax
subl $48, %eax
cltd
addl %ecx, %eax
adcl %ebx, %edx
incl %ebp
movzbl 0(%ebp), %esi
leal -48(%esi), %ecx
cmpb $9, %cl
jbe L26
testl %edx, %edx
js L8
L25:
movl %eax, (%esp)
movl %edx, 4(%esp)
call _isprime
testl %eax, %eax
jne L73
.p2align 2,,3
L8:
call _GetProcessHeap@0
movl %edi, 8(%esp)
movl $0, 4(%esp)
movl %eax, (%esp)
call _HeapFree@12
.cfi_def_cfa_offset 100
subl $12, %esp
.cfi_def_cfa_offset 112
xorl %eax, %eax
addl $92, %esp
.cfi_remember_state
.cfi_def_cfa_offset 20
popl %ebx
.cfi_restore 3
.cfi_def_cfa_offset 16
popl %esi
.cfi_restore 6
.cfi_def_cfa_offset 12
popl %edi
.cfi_restore 7
.cfi_def_cfa_offset 8
popl %ebp
.cfi_restore 5
.cfi_def_cfa_offset 4
ret
L4:
.cfi_restore_state
movl %ebx, (%esp)
call _GlobalUnlock@4
.cfi_def_cfa_offset 108
pushl %eax
.cfi_def_cfa_offset 112
L68:
call _CloseClipboard@0
jmp L67
.p2align 2,,3
L72:
movl 120(%esp), %edx
movl 16(%edx), %esi
testl %esi, %esi
jne L34
movl $2, %eax
movl $0, 36(%esp)
jmp L11
.p2align 2,,3
L65:
movw (%edi,%ebp,2), %dx
movzwl %dx, %ecx
subl $48, %ecx
cmpl $9, %ecx
ja L12
incl 36(%esp)
cmpl $19, 36(%esp)
jle L11
L33:
movl $2, %eax
jmp L11
.p2align 2,,3
L29:
movl %ebp, 44(%esp)
movl $1, %eax
movl $1, 36(%esp)
jmp L11
.p2align 2,,3
L12:
movl 120(%esp), %ecx
cmpw $46, %dx
je L74
movl 12(%ecx), %ecx
testl %ecx, %ecx
je L14
cmpw $44, %dx
je L11
L14:
decl %eax
jne L34
cmpl 44(%esp), %ebp
jle L35
movl 44(%esp), %esi
xorl %ebx, %ebx
movl %ebp, 40(%esp)
movl %esi, %ebp
movl 112(%esp), %esi
.p2align 2,,3
L17:
movl $0, 12(%esp)
movl $LC0, 8(%esp)
movl $LC1, 4(%esp)
movl %esi, (%esp)
call _MessageBoxA@16
.cfi_def_cfa_offset 96
subl $16, %esp
.cfi_def_cfa_offset 112
movw (%edi,%ebp,2), %ax
movzwl %ax, %ecx
subl $48, %ecx
cmpl $9, %ecx
ja L16
movb %al, 48(%esp,%ebx)
incl %ebx
L16:
incl %ebp
cmpl 40(%esp), %ebp
jne L17
movl 40(%esp), %ebp
L15:
movb $0, 48(%esp,%ebx)
movl %ebx, 20(%esp)
xorl %eax, %eax
cmpl %ebp, 44(%esp)
setl %al
movl %eax, 16(%esp)
movl %ebp, 12(%esp)
movl 44(%esp), %edx
movl %edx, 8(%esp)
movl $LC2, 4(%esp)
leal 48(%esp), %ecx
movl %ecx, (%esp)
call _wsprintfA
movl $0, 12(%esp)
movl $LC0, 8(%esp)
leal 48(%esp), %eax
movl %eax, 4(%esp)
movl 112(%esp), %edx
movl %edx, (%esp)
call _MessageBoxA@16
.cfi_def_cfa_offset 96
subl $16, %esp
.cfi_def_cfa_offset 112
movb 48(%esp), %cl
leal -48(%ecx), %eax
cmpb $9, %al
ja L36
leal 48(%esp), %esi
xorl %eax, %eax
xorl %edx, %edx
movl %edi, 40(%esp)
movl %esi, %edi
movl %ecx, %esi
.p2align 2,,3
L19:
movl %eax, %ecx
movl %edx, %ebx
addl %eax, %ecx
adcl %edx, %ebx
shldl $3, %eax, %edx
sall $3, %eax
addl %eax, %ecx
adcl %edx, %ebx
movl %esi, %edx
movsbl %dl, %eax
subl $48, %eax
cltd
addl %ecx, %eax
adcl %ebx, %edx
incl %edi
movzbl (%edi), %esi
leal -48(%esi), %ecx
cmpb $9, %cl
jbe L19
movl 40(%esp), %edi
testl %edx, %edx
js L34
L18:
movl %eax, (%esp)
movl %edx, 4(%esp)
call _isprime
testl %eax, %eax
je L34
leal 48(%esp), %ecx
movl %ecx, 4(%esp)
movl 116(%esp), %eax
movl %eax, (%esp)
L69:
call _lstrcpyA@8
.cfi_def_cfa_offset 104
subl $8, %esp
.cfi_def_cfa_offset 112
call _GetProcessHeap@0
movl %edi, 8(%esp)
movl $0, 4(%esp)
movl %eax, (%esp)
call _HeapFree@12
.cfi_def_cfa_offset 100
subl $12, %esp
.cfi_def_cfa_offset 112
movl $1, %eax
jmp L64
.p2align 2,,3
L74:
movl 16(%ecx), %ebx
testl %ebx, %ebx
je L33
jmp L14
.p2align 2,,3
L5:
movl 32(%esp), %ebp
testl %ebp, %ebp
jg L6
jmp L8
L36:
xorl %eax, %eax
xorl %edx, %edx
jmp L18
L35:
xorl %ebx, %ebx
jmp L15
L73:
leal 48(%esp), %eax
movl %eax, 4(%esp)
movl 116(%esp), %ecx
movl %ecx, (%esp)
jmp L69
L37:
xorl %eax, %eax
xorl %edx, %edx
jmp L25
.cfi_endproc
LFE47:
.def _IsClipboardFormatAvailable@4; .scl 2; .type 32; .endef
.def _OpenClipboard@4; .scl 2; .type 32; .endef
.def _GetClipboardData@4; .scl 2; .type 32; .endef
.def _GlobalLock@4; .scl 2; .type 32; .endef
.def _lstrlenW@4; .scl 2; .type 32; .endef
.def _GetProcessHeap@0; .scl 2; .type 32; .endef
.def _HeapAlloc@12; .scl 2; .type 32; .endef
.def _lstrcpyW@8; .scl 2; .type 32; .endef
.def _GlobalUnlock@4; .scl 2; .type 32; .endef
.def _CloseClipboard@0; .scl 2; .type 32; .endef
.def _isprime; .scl 2; .type 32; .endef
.def _HeapFree@12; .scl 2; .type 32; .endef
.def _MessageBoxA@16; .scl 2; .type 32; .endef
.def _wsprintfA; .scl 2; .type 32; .endef
.def _lstrcpyA@8; .scl 2; .type 32; .endef