Function at 0x40cb50
Capabilities:
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
or eax, 0xffffffff
mov word [ebp - 0x30], ax
xor eax, eax
push ebx
mov word [ebp - 0x2e], ax
mov dword [ebp - 0x44], eax
push esi
mov eax, 0x65
xor ecx, ecx
push edi
xor edi, edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
mov dword [ebp - 0xc], edi
neg ecx
or ecx, eax
push ecx
call fcn.0042302a
mov ebx, eax
add esp, 4
xor eax, eax
push 4
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x48], ebx
mov word [ebx], ax
call fcn.0042302a
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
je 0x40da89
mov dword [edx], 1
mov ecx, dword [ebp + 0x10]
xor esi, esi
mov dword [ebp - 0x3c], edx
cmp dword [ecx + 8], esi
jbe 0x40cc0d
lea esp, [esp]
mov eax, dword [ecx + 4]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x40cbfd
movzx ecx, word [eax + 8]
cmp cx, 0x3f
jg 0x40cbf1
cmp cx, 0x30
jge 0x40ccd8
push eax
call fcn.0042309e
mov ecx, dword [ebp + 0x10]
add esp, 4
mov eax, dword [ecx + 4]
inc esi
mov dword [eax + esi*4 - 4], edi
cmp esi, dword [ecx + 8]
jb 0x40cbd0
mov edx, dword [ebp - 8]
mov esi, dword [ebp + 0xc]
mov dword [ecx + 8], edi
cmp word [esi], di
je 0x40cf2a
fld qword [0x4b48d8]
mov esi, dword [ebp - 0x38]
fld qword [0x4b48d0]
fld qword [0x4b48c8]
fldz
mov ebx, dword [ebp + 0xc]
movzx eax, word [ebx + edi*2]
cmp eax, 0x20
je 0x40cd54
cmp eax, 9
je 0x40cd54
mov eax, ebx
mov ebx, dword [ebp - 0x18]
movzx eax, word [eax + edi*2]
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x24], eax
test ax, ax
je 0x40cf0f
movzx eax, ax
mov word [ebp - 0x2e], di
cmp eax, 0x30
jb 0x40cc79
cmp eax, 0x39
jbe 0x40d1ab
cmp eax, 0x2e
je 0x40d1ab
cmp ax, 0x41
jae 0x40cd5a
cmp ax, 0x61
jae 0x40da37
cmp ax, 0x5f
je 0x40cd64
movzx eax, ax
cmp eax, 0x24
je case.0x40ccd1.64
cmp eax, 0x2c
je 0x40d153
cmp eax, 0x3d
je 0x40d28b
sub eax, 0x1a
cmp eax, 0x44
ja case.0x40ccd1.27
movzx eax, byte [eax + 0x40db28]
jmp dword [eax*4 + 0x40dae0]
mov ecx, dword [eax]
mov dword [ebp - 0x24], ecx
test ecx, ecx
je 0x40cbf1
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov eax, dword [ecx + 0xc]
cmp dword [eax], edi
je 0x4748af
push ecx
call fcn.0042309e
mov eax, dword [ebp - 0x20]
add esp, 4
jmp 0x40cbf1
mov eax, dword [ebp - 0x30]
fstp st(0)
fstp st(2)
add eax, 0xffffffd0
fstp st(0)
fstp st(0)
cmp ax, 0xf
ja 0x40cd31
test esi, esi
je 0x40cd31
mov ecx, esi
call fcn.0040e281
push esi
call fcn.0042309e
mov ecx, dword [ebp + 0x10]
add esp, 4
mov eax, 0x48
mov word [ebp - 0x30], ax
lea eax, [ebp - 0x38]
xor esi, esi
push eax
mov dword [ebp - 0x38], esi
call fcn.0040db70
mov ecx, dword [ebp + 0x10]
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40ceea
inc edi
jmp 0x40cc36
cmp ax, 0x5a
ja 0x40cc8c
mov eax, dword [edx]
fstp st(0)
cmp eax, 1
jg 0x40d39d
xor esi, esi
xor eax, eax
mov word [ebx], ax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x44], esi
movzx eax, word [eax + edi*2]
mov dword [ebp - 0x20], eax
cmp ax, 0x5a
jbe 0x40cdd7
cmp ax, 0x61
jb 0x40cddf
cmp ax, 0x7a
ja 0x40cddf
mov ecx, dword [edx]
cmp ecx, 1
jg 0x47490f
lea ecx, [esi + 2]
cmp dword [ebp - 0x10], ecx
jb 0x40d562
fstp st(2)
fstp st(0)
fstp st(0)
fld qword [0x4b48d8]
mov word [ebx + esi*2], ax
fld qword [0x4b48d0]
inc esi
fld qword [0x4b48c8]
xor eax, eax
inc edi
mov word [ebx + esi*2], ax
mov dword [ebp - 0xc], edi
jmp 0x40cd78
cmp ax, 0x41
jae 0x40cd97
jmp 0x40cd8b
cmp ax, 0x30
jae 0x40d553
cmp ax, 0x5f
je 0x40cd97
mov eax, dword [edx]
fstp st(2)
fstp st(0)
mov dword [ebp - 0x18], ebx
fstp st(0)
mov dword [ebp - 0x18], ebx
cmp eax, 1
jg 0x474a5d
push esi
push ebx
call dword [sym.imp.USER32.dll_CharUpperBuffW]
xor esi, esi
push ebx
push dword [esi*4 + 0x4bdad8]
call fcn.00425123
add esp, 8
test eax, eax
je 0x40ce4f
inc esi
cmp esi, 0x2d
jl 0x40ce10
mov ecx, dword [0x4c4104]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, eax
lea ecx, [ebp - 0x38]
test esi, esi
js 0x40d627
push 1
call fcn.0040dcfe
mov dword [ebp - 0x38], esi
jmp 0x40ce77
test esi, esi
js 0x40ce2a
mov eax, dword [ebp - 0x20]
cmp ax, 0x20
jne 0x40d4dd
mov ax, word [ebp - 0x30]
cmp ax, 0x30
jge 0x40d527
xor eax, eax
mov word [ebp - 0x30], ax
mov dword [ebp - 0x38], esi
cmp esi, 0xffffffff
je 0x474e21
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0xc]
cmp dword [ecx + 8], eax
je 0x40da46
push 0xc
call fcn.0042302a
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
je 0x40dad9
mov ax, word [ebp - 0x30]
mov cx, word [ebp - 0x2e]
mov word [edx + 8], ax
mov word [edx + 0xa], cx
cmp ax, 0x30
jge 0x40d642
cmp word [ebp - 0x30], 0x10
je 0x474ae5
cmp word [ebp - 0x30], 0x20
je 0x40daa9
mov dword [edx], esi
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp + 0x10]
inc dword [ecx + 8]
mov edx, dword [ebp - 8]
fld qword [0x4b48d8]
mov eax, dword [ebp + 0xc]
fld qword [0x4b48d0]
fld qword [0x4b48c8]
fldz
cmp word [eax + edi*2], 0
jne 0x40cc33
mov eax, dword [ebp - 0x30]
fstp st(0)
fstp st(2)
add eax, 0xffffffd0
fstp st(0)
fstp st(0)
cmp ax, 0xf
jbe 0x40d60a
mov ecx, dword [ebp + 0x10]
mov eax, 0x7f
mov word [ebp - 0x30], ax
lea eax, [ebp - 0x38]
xor esi, esi
push eax
mov dword [ebp - 0x38], esi
mov word [ebp - 0x2e], di
call fcn.0040db70
mov edi, dword [ebp - 8]
mov dword [ebp + 0x10], esi
dec dword [edi]
jne 0x40cf61
push ebx
call fcn.0042309e
add esp, 4
push edi
call fcn.0042309e
add esp, 4
mov eax, dword [ebp - 0x30]
add eax, 0xffffffd0
cmp ax, 0xf
jbe 0x474edd
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ecx
call fcn.0040dcbf
test eax, eax
js 0x474eb8
mov ecx, dword [ebp - 0x24]
cmp cx, 0x24
jne 0x40d5d1
mov ecx, 0x33
mov eax, dword [ebp - 0x30]
add eax, 0xffffffd0
mov dword [ebp - 0x24], ecx
cmp ax, 0xf
jbe 0x474baf
lea eax, [ecx - 0x30]
mov word [ebp - 0x30], cx
mov dword [ebp - 0x28], eax
cmp ax, 0xf
ja 0x474be3
fstp st(0)
mov dword [ebp - 0x38], 0
mov edx, dword [ebp - 8]
inc edi
mov eax, dword [edx]
mov dword [ebp - 0xc], edi
cmp eax, 1
jg 0x40d21e
xor esi, esi
xor eax, eax
mov word [ebx], ax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x44], esi
movzx eax, word [eax + edi*2]
mov dword [ebp - 0x20], eax
cmp ax, 0x5a
jbe 0x40d045
cmp ax, 0x61
jb 0x40d04d
cmp ax, 0x7a
ja 0x40d04d
mov ecx, dword [edx]
cmp ecx, 1
jg 0x474c14
lea ecx, [esi + 2]
cmp dword [ebp - 0x10], ecx
jb 0x40d40c
fstp st(2)
fstp st(0)
fstp st(0)
fld qword [0x4b48d8]
mov word [ebx + esi*2], ax
fld qword [0x4b48d0]
inc esi
fld qword [0x4b48c8]
xor eax, eax
inc edi
mov word [ebx + esi*2], ax
mov dword [ebp - 0xc], edi
jmp 0x40cfe6
cmp ax, 0x41
jae 0x40d005
jmp 0x40cff9
cmp ax, 0x30
jae 0x40d144
cmp ax, 0x5f
je 0x40d005
fstp st(2)
mov dword [ebp - 0x18], ebx
fstp st(0)
mov dword [ebp - 0x18], ebx
fstp st(0)
test esi, esi
je 0x474e95
mov eax, dword [edx]
cmp eax, 1
jg 0x474d62
push esi
push ebx
call dword [sym.imp.USER32.dll_CharUpperBuffW]
cmp word [ebp - 0x28], 0xf
ja 0x40d096
mov ecx, dword [ebp - 0x38]
test ecx, ecx
jne 0x474dbc
push 0x10
call fcn.0042302a
mov esi, eax
add esp, 4
test esi, esi
je 0x40dac4
mov eax, dword [ebp - 0x44]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 8], eax
mov eax, dword [ebp - 8]
mov dword [esi], ebx
mov dword [esi + 0xc], eax
inc dword [eax]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x38], esi
mov eax, dword [ecx + 0xc]
cmp dword [ecx + 8], eax
je 0x40d8a8
push 0xc
call fcn.0042302a
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
je 0x40dad9
mov eax, dword [ebp - 0x24]
mov cx, word [ebp - 0x2e]
mov word [edx + 8], ax
mov word [edx + 0xa], cx
cmp ax, 0x30
jl 0x474dc7
cmp ax, 0x3f
jg 0x474dc7
push 0x10
call fcn.0042302a
mov edx, eax
add esp, 4
test edx, edx
je 0x40dacb
mov ecx, dword [esi]
mov dword [edx], ecx
mov ecx, dword [esi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
mov eax, dword [esi + 0xc]
mov dword [edx + 0xc], eax
inc dword [eax]
mov eax, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, eax
jmp 0x40ced8
cmp ax, 0x39
ja 0x40d057
jmp 0x40d005
mov eax, dword [ebp - 0x30]
fstp st(0)
fstp st(2)
add eax, 0xffffffd0
fstp st(0)
fstp st(0)
cmp ax, 0xf
ja 0x40d188
test esi, esi
je 0x40d188
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x474b95
push esi
call fcn.0042309e
mov ecx, dword [ebp + 0x10]
add esp, 4
mov eax, 0x40
mov word [ebp - 0x30], ax
lea eax, [ebp - 0x38]
xor esi, esi
push eax
mov dword [ebp - 0x38], esi
call fcn.0040db70
mov ecx, dword [ebp + 0x10]
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40ceea
mov edi, dword [ecx + 8]
fstp st(0)
fstp st(2)
mov esi, 0x40
fstp st(0)
fstp st(0)
test edi, edi
je 0x40d1ca
mov eax, dword [ecx + 4]
mov eax, dword [eax + edi*4 - 4]
movzx esi, word [eax + 8]
mov ebx, dword [ebp + 0xc]
push esi
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xc]
push eax
push ebx
call fcn.0040deb0
cmp al, 1
jne 0x40d910
cmp si, 0x4a
je 0x40d738
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], edx
mov dword [ebp - 0x18], ebx
jmp 0x40ceed
fstp st(2)
dec eax
fstp st(0)
push 4
fstp st(0)
mov dword [edx], eax
call fcn.0042302a
add esp, 4
mov dword [ebp - 8], eax
test eax, eax
je 0x474c07
mov dword [eax], 1
mov dword [ebp - 0x3c], eax
mov eax, 8
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004229b1
fld qword [0x4b48d8]
fld qword [0x4b48d0]
mov edx, dword [ebp - 8]
fld qword [0x4b48c8]
mov ebx, eax
add esp, 4
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x48], ebx
jmp 0x40cfdf
mov eax, dword [ebp + 0xc]
fstp st(0)
fstp st(2)
inc edi
fstp st(0)
mov dword [ebp - 0xc], edi
cmp word [eax + edi*2], 0x3d
fstp st(0)
je 0x40d9a5
mov eax, dword [ebp - 0x30]
add eax, 0xffffffd0
cmp ax, 0xf
ja 0x40d2d2
test esi, esi
je 0x40d2d2
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x474b7b
push esi
call fcn.0042309e
mov ecx, dword [ebp + 0x10]
add esp, 4
mov eax, 0x41
mov word [ebp - 0x30], ax
lea eax, [ebp - 0x38]
xor esi, esi
push eax
mov dword [ebp - 0x38], esi
call fcn.0040db70
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
mov ax, word [ebp - 0x30]
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
cmp ax, 0x30
jge 0x40d5db
mov eax, 0x47
jmp 0x40cd36
lea eax, [ebp - 0x48]
fstp st(0)
push eax
fstp st(2)
lea eax, [ebp - 0xc]
fstp st(0)
push eax
fstp st(0)
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040e2b0
test eax, eax
js 0x474e2c
mov eax, dword [ebp - 0x30]
add eax, 0xffffffd0
cmp ax, 0xf
jbe 0x474af2
mov eax, 0x36
push 0x10
mov word [ebp - 0x30], ax
call fcn.0042302a
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x48]
mov esi, eax
add esp, 4
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], ebx
test esi, esi
je 0x40dab3
mov eax, dword [ebp - 0x44]
mov dword [esi], ebx
mov dword [esi + 4], eax
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
inc dword [ecx]
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x38], esi
call fcn.0040db70
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
fstp st(2)
dec eax
fstp st(0)
push 4
fstp st(0)
mov dword [edx], eax
call fcn.0042302a
mov ecx, eax
add esp, 4
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x40da93
mov dword [ecx], 1
mov dword [ebp - 0x3c], ecx
mov eax, 8
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004229b1
fld qword [0x4b48d8]
fld qword [0x4b48d0]
mov edx, dword [ebp - 8]
fld qword [0x4b48c8]
mov ebx, eax
add esp, 4
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x48], ebx
jmp 0x40cd71
cmp ecx, 0x41c2
jae 0x474c79
fstp st(2)
lea eax, [ecx + ecx]
fstp st(0)
fstp st(0)
test eax, eax
je 0x40daba
add eax, 7
and eax, 0xfffffff8
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004229b1
add esp, 4
mov dword [ebp - 0x18], eax
test ebx, ebx
je 0x40d473
lea ecx, [esi*2 + 2]
push ecx
push ebx
push eax
call fcn.004229c0
add esp, 0xc
push ebx
call fcn.00424920
mov eax, dword [ebp - 0x18]
add esp, 4
mov edx, dword [ebp - 8]
mov ebx, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], ebx
jmp 0x40d022
fstp st(0)
push 0x4e
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40ceea
fstp st(0)
push 0x4f
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40ceea
cmp ax, 0x29
je 0x40ce60
cmp ax, 0x2c
je 0x40ce60
cmp ax, 9
je 0x40ce60
cmp ax, 0x3d
je 0x40ce60
cmp ax, 0x28
je 0x40ce60
cmp ax, 0x5d
je 0x40ce60
test ax, ax
je 0x40ce60
jmp 0x474e14
cmp ax, 0x3f
jg 0x40ce6e
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x40ce6e
mov ecx, eax
call fcn.0040e281
push dword [ebp - 0x38]
call fcn.0042309e
add esp, 4
jmp 0x40ce6e
cmp ax, 0x39
ja 0x40cde9
jmp 0x40cd97
cmp ecx, 0x41c2
jae 0x474974
fstp st(2)
lea eax, [ecx + ecx]
fstp st(0)
fstp st(0)
push eax
call fcn.0040e544
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004229b1
add esp, 4
mov dword [ebp - 0x24], eax
test ebx, ebx
je 0x40d5c1
lea ecx, [esi*2 + 2]
push ecx
push ebx
push eax
call fcn.004229c0
add esp, 0xc
push ebx
call fcn.00424920
mov eax, dword [ebp - 0x24]
add esp, 4
mov edx, dword [ebp - 8]
mov ebx, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], ebx
jmp 0x40cdb4
mov ecx, 0x32
jmp 0x40cf9d
cmp ax, 0x3f
jg 0x40d307
test esi, esi
je 0x40d307
mov ecx, esi
call fcn.0040e281
push esi
call fcn.0042309e
mov ecx, dword [ebp + 0x10]
add esp, 4
mov eax, 0x47
jmp 0x40cd36
test esi, esi
je 0x40cf27
mov ecx, esi
call fcn.0040e281
push esi
call fcn.0042309e
add esp, 4
jmp 0x40cf27
push 0x34
call fcn.0040dcfe
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040e938
mov esi, dword [ebp - 0x38]
jmp 0x40ce77
cmp ax, 0x3f
jg 0x40cec0
push 0x10
call fcn.0042302a
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
je 0x40da9d
mov ecx, dword [esi]
mov dword [edx], ecx
mov ecx, dword [esi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
mov eax, dword [esi + 0xc]
mov dword [edx + 0xc], eax
inc dword [eax]
mov eax, edx
mov edx, dword [ebp - 0x20]
mov dword [edx], eax
jmp 0x40ced8
fstp st(0)
push 0x4d
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov eax, dword [ebp + 0xc]
inc edi
mov dword [ebp - 0xc], edi
cmp word [eax + edi*2], 0x3d
je 0x40d862
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
fstp st(0)
push 0x49
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov eax, dword [ebp + 0xc]
inc edi
mov dword [ebp - 0xc], edi
cmp word [eax + edi*2], 0x3d
je 0x40d83f
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
fstp st(0)
push 0x4a
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov eax, dword [ebp + 0xc]
inc edi
mov dword [ebp - 0xc], edi
cmp word [eax + edi*2], 0x3d
je 0x40d875
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
cmp word [ebp - 0x30], 5
jne 0x40d1f2
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x10]
neg esi
adc eax, 0
neg eax
mov dword [ebp - 0x34], eax
mov eax, dword [ecx + 4]
mov edx, 0x49
mov eax, dword [eax + edi*4 - 4]
mov dword [ebp - 0x38], esi
mov word [eax + 8], dx
jmp 0x40d1f8
mov eax, dword [ebp + 0xc]
fstp st(0)
inc edi
fstp st(2)
fstp st(0)
mov dword [ebp - 0xc], edi
movzx eax, word [eax + edi*2]
fstp st(0)
lea ecx, [ebp - 0x38]
sub eax, 0x3d
je 0x40d888
dec eax
je 0x40d852
push 0x43
call fcn.0040dcfe
jmp 0x40d6e6
mov eax, dword [ebp + 0xc]
fstp st(0)
fstp st(2)
inc edi
fstp st(0)
mov dword [ebp - 0xc], edi
cmp word [eax + edi*2], 0x3d
fstp st(0)
lea ecx, [ebp - 0x38]
je 0x40d898
push 0x42
call fcn.0040dcfe
jmp 0x40d6e6
fstp st(0)
push 0x4c
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov eax, dword [ebp + 0xc]
inc edi
mov dword [ebp - 0xc], edi
cmp word [eax + edi*2], 0x3d
je 0x40d9ca
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
fstp st(0)
push 0x4b
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov eax, dword [ebp + 0xc]
inc edi
mov dword [ebp - 0xc], edi
cmp word [eax + edi*2], 0x3d
je 0x474b07
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
inc edi
push 0x52
lea ecx, [ebp - 0x38]
mov dword [ebp - 0xc], edi
call fcn.0040dcfe
jmp 0x40d6e6
push 0x44
call fcn.0040dcfe
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40d6e6
inc edi
push 0x56
lea ecx, [ebp - 0x38]
mov dword [ebp - 0xc], edi
call fcn.0040dcfe
jmp 0x40d6ab
inc edi
push 0x53
lea ecx, [ebp - 0x38]
mov dword [ebp - 0xc], edi
call fcn.0040dcfe
jmp 0x40d721
push 0x46
call fcn.0040dcfe
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40d6e6
push 0x45
call fcn.0040dcfe
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40d6e6
add eax, eax
cmp eax, 8
jae 0x40d8b4
mov eax, 8
mov dword [ecx + 0xc], eax
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042302a
mov ecx, eax
mov eax, dword [ebp + 0x10]
add esp, 4
mov edx, dword [eax + 4]
mov dword [ebp - 0x28], ecx
test edx, edx
je 0x40d908
mov eax, dword [eax + 8]
test eax, eax
je 0x40d905
shl eax, 2
push eax
push edx
push ecx
call fcn.004229c0
mov eax, dword [ebp + 0x10]
add esp, 0xc
push dword [eax + 4]
call fcn.0042309e
mov ecx, dword [ebp - 0x28]
add esp, 4
mov eax, dword [ebp + 0x10]
mov dword [eax + 4], ecx
jmp 0x40d0d2
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0xc]
movzx eax, cx
cmp eax, 0x2e
jne 0x4748de
inc edi
lea ecx, [ebp - 0x48]
mov dword [ebp - 0xc], edi
call fcn.0040e3ef
movzx eax, word [ebx + edi*2]
cmp ax, 0x5a
jbe 0x40d950
cmp ax, 0x61
jb 0x40d958
cmp ax, 0x7a
ja 0x40d958
push eax
lea ecx, [ebp - 0x48]
call fcn.0040e1e7
inc edi
jmp 0x40d92e
cmp ax, 0x41
jae 0x40d944
jmp 0x40d938
cmp ax, 0x30
jae 0x4748cf
cmp ax, 0x5f
je 0x40d944
cmp ax, 0x7f
ja 0x40d944
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0xc], edi
je 0x474dee
push 0x35
lea ecx, [ebp - 0x38]
call fcn.0040dcfe
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040e938
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
jmp 0x40d204
push 0x50
lea ecx, [ebp - 0x38]
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x38]
lea eax, [ebp - 0x38]
inc edi
push eax
mov dword [ebp - 0xc], edi
call fcn.0040db70
mov ecx, dword [ebp + 0x10]
jmp 0x40ceea
inc edi
push 0x55
lea ecx, [ebp - 0x38]
mov dword [ebp - 0xc], edi
call fcn.0040dcfe
jmp 0x40d7ed
fstp st(0)
push 0x57
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40ceea
fstp st(0)
push 0x58
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40ceea
cmp ax, 0x7a
jbe 0x40cd64
jmp 0x40cc96
add eax, eax
cmp eax, 8
jae 0x40da52
mov eax, 8
mov dword [ecx + 0xc], eax
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042302a
mov ecx, eax
mov eax, dword [ebp + 0x10]
add esp, 4
mov edx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
test edx, edx
jne 0x474ab7
mov dword [eax + 4], ecx
jmp 0x40ce8f
xor edx, edx
mov dword [ebp - 8], edx
jmp 0x40cbbc
xor ecx, ecx
mov dword [ebp - 8], ecx
jmp 0x40d3c3
mov edx, dword [ebp - 0x20]
xor eax, eax
mov dword [edx], eax
jmp 0x40ced8
fld qword [ebp - 0x38]
fstp qword [edx]
jmp 0x40ced8
xor esi, esi
jmp 0x40d383
mov eax, 8
jmp 0x40d42f
xor esi, esi
jmp 0x40d0c0
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [eax], edx
mov edx, eax
jmp 0x40ced8
xor edx, edx
jmp 0x40ced8
push dword [ecx]
call fcn.0042309e
mov eax, dword [ebp - 0x24]
add esp, 4
push dword [eax + 0xc]
call fcn.0042309e
mov ecx, dword [ebp - 0x24]
add esp, 4
jmp 0x40ccf5
cmp ax, 0x39
jbe 0x40d944
jmp 0x40d962
mov ecx, dword [ebp - 0x40]
fld qword [0x4b48d8]
mov edx, dword [ebp - 0x3c]
fld qword [0x4b48d0]
mov ebx, dword [ebp - 0x48]
fld qword [0x4b48c8]
mov esi, dword [ebp - 0x38]
fldz
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], edx
mov dword [ebp - 0x18], ebx
jmp 0x40cc82
fstp st(2)
lea eax, [ecx - 1]
fstp st(0)
lea ecx, [ebp - 0x48]
fstp st(0)
mov dword [edx], eax
call fcn.0041276a
mov esi, dword [ebp - 0x44]
lea eax, [esi + 2]
push eax
call fcn.0040e544
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042302a
add esp, 4
mov ebx, eax
lea eax, [esi*2 + 2]
push eax
push dword [ebp - 0x48]
push ebx
call fcn.004229c0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov dword [ebp - 0x48], ebx
mov dword [ebp - 8], edx
jmp 0x40cdb4
cmp ecx, 0x2000000
jae 0x4749c5
fstp st(1)
mov dword [ebp - 0x28], ecx
fstp st(0)
fild dword [ebp - 0x28]
test ecx, ecx
jns 0x474990
fadd qword [0x4b8a00]
fstp qword [ebp - 0x2c]
fmul qword [ebp - 0x2c]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0xc]
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
or eax, 0xc00
mov dword [ebp - 0x24], eax
fldcw word [ebp - 0x24]
fistp qword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40d577
fstp st(2)
cmp ecx, 0x8000000
jae 0x474a16
mov dword [ebp - 0x28], ecx
fstp st(1)
fild dword [ebp - 0x28]
test ecx, ecx
jns 0x4749e1
fadd qword [0x4b8a00]
fstp qword [ebp - 0x2c]
fmul qword [ebp - 0x2c]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0xc]
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
or eax, 0xc00
mov dword [ebp - 0x24], eax
fldcw word [ebp - 0x24]
fistp qword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40d577
mov dword [ebp - 0x28], ecx
fstp st(0)
fild dword [ebp - 0x28]
test ecx, ecx
jns 0x474a28
fadd qword [0x4b8a00]
fstp qword [ebp - 0x2c]
fmul qword [ebp - 0x2c]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0xc]
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
or eax, 0xc00
mov dword [ebp - 0x24], eax
fldcw word [ebp - 0x24]
fistp qword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40d577
dec eax
lea ecx, [ebp - 0x48]
mov dword [edx], eax
call fcn.0041276a
mov esi, dword [ebp - 0x44]
inc esi
push esi
call fcn.0040e544
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004229b1
mov ebx, eax
add esp, 4
lea eax, [esi + esi]
push eax
push dword [ebp - 0x48]
mov dword [ebp - 0x18], ebx
push ebx
call fcn.004229c0
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x44]
add esp, 0xc
mov dword [ebp - 0x48], ebx
mov dword [ebp - 8], ecx
jmp 0x40ce06
mov eax, dword [eax + 8]
test eax, eax
je 0x474add
shl eax, 2
push eax
push edx
push ecx
call fcn.004229c0
mov eax, dword [ebp + 0x10]
add esp, 0xc
push dword [eax + 4]
call fcn.0042309e
mov ecx, dword [ebp - 0x24]
add esp, 4
mov eax, dword [ebp + 0x10]
jmp 0x40da81
mov eax, dword [ebp - 0x34]
mov dword [edx], esi
mov dword [edx + 4], eax
jmp 0x40ced8
test esi, esi
je 0x40d344
push ecx
mov ecx, esi
call fcn.0040ea87
jmp 0x40d344
inc edi
push 0x54
lea ecx, [ebp - 0x38]
mov dword [ebp - 0xc], edi
call fcn.0040dcfe
jmp 0x40d828
fstp st(0)
push 0x51
fstp st(2)
lea ecx, [ebp - 0x38]
fstp st(0)
fstp st(0)
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40ceea
test edi, edi
jne case.0x40ccd1.27
mov eax, dword [ebp + 0xc]
cmp word [eax + 2], di
jne case.0x40ccd1.27
mov ecx, dword [ebp + 8]
cmp ecx, dword [0x4c4110]
mov ecx, dword [ebp + 0x10]
jl case.0x40ccd1.27
mov edi, 1
mov dword [ebp - 0xc], edi
jmp 0x40cf04
push dword [esi]
call fcn.0042309e
add esp, 4
push dword [esi + 0xc]
call fcn.0042309e
add esp, 4
jmp 0x40d2c6
push dword [esi]
call fcn.0042309e
add esp, 4
push dword [esi + 0xc]
call fcn.0042309e
add esp, 4
jmp 0x40d17c
test esi, esi
je 0x40cfb0
fstp st(0)
push ecx
fstp st(2)
mov ecx, esi
fstp st(0)
fstp st(0)
call fcn.0040ea87
fld qword [0x4b48d8]
mov ecx, dword [ebp - 0x24]
fld qword [0x4b48d0]
fld qword [0x4b48c8]
fldz
jmp 0x40cfb0
cmp cx, 0x10
jne 0x474bf5
mov dword [ebp - 0x34], 0
jmp 0x40cfc4
cmp cx, 0x20
jne 0x40cfc4
fstp qword [ebp - 0x38]
jmp 0x40cfcd
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x3c], ecx
jmp 0x40d245
fstp st(2)
lea eax, [ecx - 1]
fstp st(0)
lea ecx, [ebp - 0x48]
fstp st(0)
mov dword [edx], eax
call fcn.0041276a
mov esi, dword [ebp - 0x44]
lea eax, [esi + 2]
push eax
call fcn.0040e544
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042302a
add esp, 4
mov ebx, eax
lea eax, [esi*2 + 2]
push eax
push dword [ebp - 0x48]
push ebx
call fcn.004229c0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov dword [ebp - 0x48], ebx
mov dword [ebp - 8], edx
jmp 0x40d022
cmp ecx, 0x2000000
jae 0x474cca
fstp st(1)
mov dword [ebp - 0x18], ecx
fstp st(0)
fild dword [ebp - 0x18]
test ecx, ecx
jns 0x474c95
fadd qword [0x4b8a00]
fstp qword [ebp - 0x1c]
fnstcw word [ebp - 6]
fmul qword [ebp - 0x1c]
movzx eax, word [ebp - 6]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
or eax, 0xc00
mov dword [ebp - 0x18], eax
fldcw word [ebp - 0x18]
fistp qword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40d421
fstp st(2)
cmp ecx, 0x8000000
jae 0x474d1b
fstp st(1)
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
test ecx, ecx
jns 0x474ce6
fadd qword [0x4b8a00]
fstp qword [ebp - 0x1c]
fnstcw word [ebp - 6]
fmul qword [ebp - 0x1c]
movzx eax, word [ebp - 6]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
or eax, 0xc00
mov dword [ebp - 0x18], eax
fldcw word [ebp - 0x18]
fistp qword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40d421
fstp st(0)
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
test ecx, ecx
jns 0x474d2d
fadd qword [0x4b8a00]
fstp qword [ebp - 0x1c]
fnstcw word [ebp - 6]
fmul qword [ebp - 0x1c]
movzx eax, word [ebp - 6]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
or eax, 0xc00
mov dword [ebp - 0x18], eax
fldcw word [ebp - 0x18]
fistp qword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40d421
dec eax
lea ecx, [ebp - 0x48]
mov dword [edx], eax
call fcn.0041276a
mov esi, dword [ebp - 0x44]
inc esi
push esi
call fcn.0040e544
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004229b1
mov ebx, eax
add esp, 4
lea eax, [esi + esi]
push eax
push dword [ebp - 0x48]
mov dword [ebp - 0x18], ebx
push ebx
call fcn.004229c0
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x44]
add esp, 0xc
mov dword [ebp - 0x48], ebx
mov dword [ebp - 8], ecx
jmp 0x40d07c
push ecx
call fcn.0040ea87
jmp 0x40d096
cmp ax, 0x10
jne 0x474dda
mov eax, dword [ebp - 0x34]
mov dword [edx], esi
mov dword [edx + 4], eax
jmp 0x40ced8
cmp ax, 0x20
jne 0x40ced6
fld qword [ebp - 0x38]
fstp qword [edx]
jmp 0x40ced8
lea eax, [edi - 1]
push eax
push 0x138b
push dword [ebp + 8]
call fcn.00446118
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x48]
mov dword [ebp + 0x10], 0xffffffff
jmp 0x40cf4b
push 0xffffffffffffffff
lea ecx, [ebp - 0x38]
call fcn.0040dcfe
or esi, 0xffffffff
push edi
push 0x138c
jmp 0x474ec6
push 0x7f
lea ecx, [ebp - 0x38]
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x48]
mov dword [ebp + 0x10], 0xffffffff
jmp 0x40cf4b
fstp st(0)
push edi
fstp st(2)
push 0x1388
push dword [ebp + 8]
fstp st(0)
fstp st(0)
call fcn.00446118
push 0x7f
lea ecx, [ebp - 0x38]
call fcn.0040dcfe
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0040db70
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 8]
mov dword [ebp + 0x10], 0xffffffff
jmp 0x40cf4b
lea eax, [edi - 1]
push eax
push 0x138b
push dword [ebp + 8]
call fcn.00446118
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 8]
mov dword [ebp + 0x10], 0xffffffff
jmp 0x40cf4b
fstp st(0)
push edi
fstp st(2)
push 0x138b
fstp st(0)
fstp st(0)
push dword [ebp + 8]
call fcn.00446118
mov edi, dword [ebp - 8]
mov dword [ebp + 0x10], 0xffffffff
jmp 0x40cf4b
test esi, esi
je 0x40cf71
push ecx
mov ecx, esi
call fcn.0040ea87
jmp 0x40cf71