Function at 0x40644c
Capabilities:
Check http status code
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x35a8
call fcn.004561f0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov al, byte [ecx]
sub al, 2
push ebx
push esi
xor esi, esi
neg al
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ecx + 4]
push edi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x60], 0x4585d8
mov dword [ebp - 8], esi
sbb eax, eax
not eax
and eax, dword [0x467ff0]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x4064b1
cmp dword [ebx], 0
je 0x4064b1
mov edi, ebx
jmp 0x4064b3
xor edi, edi
test edi, edi
mov dword [ebp - 0x1c], edi
je 0x4064c3
cmp ecx, dword [edi]
jb 0x4064cc
jmp 0x406b28
cmp byte [ecx], 0
je 0x406d7c
cmp esi, 0x1ff
jg 0x407230
push dword [ebp - 4]
call fcn.00401a22
mov dword [ebp - 4], eax
mov al, byte [eax]
test al, al
pop ecx
mov byte [ebp - 0x61], al
je 0x406b20
test edi, edi
je 0x406500
mov ecx, dword [ebp - 4]
cmp ecx, dword [edi]
jae 0x406b20
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 4]
movsx eax, al
shl edi, 4
cmp eax, 0x5e
lea ecx, [edx + 1]
movsx ebx, byte [ecx]
mov dword [ebp - 0x48], edi
lea esi, [ebp + edi - 0x35a8]
mov dword [ebp - 0x18], ecx
jg 0x406a25
je 0x406a05
cmp eax, 0x2c
jg 0x40672f
je 0x406723
sub eax, 0x21
je 0x40670e
dec eax
je 0x4066a5
sub eax, 4
je 0x40665e
dec eax
dec eax
je 0x406621
dec eax
je 0x406615
dec eax
je 0x4065cf
dec eax
jne 0x406a36
cmp ebx, 0x3d
jne 0x406583
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xd
jmp 0x406b0c
cmp dword [ebp - 8], 0
je 0x4065b3
cmp dword [ebp + edi - 0x35b0], 0xa
jge 0x4065b3
cmp ebx, 0x2b
jne 0x4065a7
mov dword [ebp - 4], ecx
mov dword [esi + 8], 7
jmp 0x406b0c
mov dword [esi + 8], 0x2a
jmp 0x406b0c
cmp ebx, 0x2b
jne 0x4065c7
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x35
jmp 0x406b0c
dec dword [ebp - 8]
jmp 0x406b0c
cmp ebx, 0x3d
jne 0x4065e3
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xf
jmp 0x406b0c
cmp ebx, 0x2a
jne 0x4065f7
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x34
jmp 0x406b0c
cmp dword [ebp - 8], 0
je 0x40660e
cmp dword [ebp + edi - 0x35b0], 0xa
jge 0x40660e
push 0x2c
jmp 0x40669c
push 0x33
jmp 0x40669c
mov dword [esi + 8], 9
jmp 0x406b0c
cmp dword [ebp - 8], 0
je 0x406648
cmp dword [ebp + edi - 0x35b0], 0xa
jge 0x406648
cmp dword [ebp - 8], 0x1fe
jg 0x407230
inc dword [ebp - 8]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 8]
shl eax, 4
mov dword [ebp + eax - 0x35a0], 0xa
jmp 0x406b0c
cmp ebx, 0x26
jne 0x406672
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1b
jmp 0x406b0c
cmp ebx, 0x3d
jne 0x406686
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x14
jmp 0x406b0c
cmp dword [ebp - 8], 0
je 0x40669a
cmp dword [ebp + edi - 0x35b0], 0xa
jge 0x40669a
push 0x27
jmp 0x40669c
push 0x32
pop eax
mov dword [esi + 8], eax
jmp 0x406b0c
cmp dword [ebp - 8], 0
je 0x4066cc
cmp dword [ebp + edi - 0x35b0], 0xa
jge 0x4066cc
cmp dword [ebp - 8], 0x1fe
jg 0x407230
inc dword [ebp - 8]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
shl eax, 4
and dword [ebp + eax - 0x35a0], 0
mov dword [ebp + eax - 0x35a8], edx
mov al, byte [ecx]
test al, al
je 0x407230
cmp al, 0x22
jne 0x4066fc
inc ecx
mov al, byte [ecx]
cmp al, 0x22
mov dword [ebp - 4], ecx
jne 0x406702
mov byte [edx], al
inc edx
inc ecx
jmp 0x4066e4
mov byte [edx], 0
inc edx
mov dword [ebp - 0x28], edx
jmp 0x406b0f
cmp ebx, 0x3d
je 0x4067ea
mov dword [esi + 8], 0x30
jmp 0x406b0c
mov dword [esi + 8], 0xb
jmp 0x406b0c
sub eax, 0x2d
je 0x406899
dec eax
dec eax
je 0x40684e
sub eax, 0xb
je 0x40682e
dec eax
dec eax
je 0x4067d3
dec eax
je 0x4067b3
dec eax
je 0x40676a
dec eax
jne 0x406a36
mov dword [esi + 8], 0x19
jmp 0x406b0c
sub ebx, 0x3d
je 0x4067a4
dec ebx
je 0x40677e
mov dword [esi + 8], 0x20
jmp 0x406b0c
lea eax, [edx + 2]
cmp byte [eax], 0x3d
jne 0x406795
mov dword [ebp - 4], eax
mov dword [esi + 8], 0x16
jmp 0x406b0c
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x29
jmp 0x406b0c
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x22
jmp 0x406b0c
cmp ebx, 0x3d
jne 0x4067c7
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1e
jmp 0x406b0c
mov dword [esi + 8], 0x1d
jmp 0x406b0c
sub ebx, 0x3c
je 0x406808
dec ebx
je 0x4067f9
dec ebx
je 0x4067ea
mov dword [esi + 8], 0x21
jmp 0x406b0c
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1f
jmp 0x406b0c
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x23
jmp 0x406b0c
lea eax, [edx + 2]
cmp byte [eax], 0x3d
jne 0x40681f
mov dword [ebp - 4], eax
mov dword [esi + 8], 0x15
jmp 0x406b0c
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x28
jmp 0x406b0c
cmp ebx, 0x3d
jne 0x406842
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xc
jmp 0x406b0c
mov dword [esi + 8], 0x18
jmp 0x406b0c
cmp ebx, 0x3d
jne 0x406862
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x10
jmp 0x406b0c
cmp ebx, 0x2f
jne 0x40688d
lea eax, [edx + 2]
cmp byte [eax], 0x3d
jne 0x40687e
mov dword [ebp - 4], eax
mov dword [esi + 8], 0x11
jmp 0x406b0c
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x2e
jmp 0x406b0c
mov dword [esi + 8], 0x2d
jmp 0x406b0c
cmp ebx, 0x3d
jne 0x4068ad
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0xe
jmp 0x406b0c
cmp dword [ebp - 8], 0
je 0x4068dd
cmp dword [ebp + edi - 0x35b0], 0xa
jge 0x4068dd
cmp ebx, 0x2d
jne 0x4068d1
mov dword [ebp - 4], ecx
mov dword [esi + 8], 8
jmp 0x406b0c
mov dword [esi + 8], 0x2b
jmp 0x406b0c
cmp ebx, 0x2d
jne 0x4068f1
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x36
jmp 0x406b0c
cmp ebx, 0x30
mov dword [esi + 8], 0x2f
jl 0x406902
cmp ebx, 0x39
jle 0x40690b
cmp ebx, 0x2e
jne 0x406b0c
mov edi, dword [ebp - 4]
add edi, 2
mov ebx, 0x45bdec
jmp 0x406919
inc edi
movsx eax, byte [edi]
push eax
push ebx
call fcn.00455d80
test eax, eax
pop ecx
pop ecx
je 0x406918
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x406938
cmp edi, dword [eax]
jae 0x406b0c
push edi
call fcn.00401a22
cmp byte [eax], 0x2a
pop ecx
jne 0x40694e
cmp byte [eax + 1], 0x2a
je 0x406b0c
movsx eax, byte [edi - 1]
push eax
call fcn.00441c9f
cmp eax, 0x45
pop ecx
jne 0x4069a0
mov ebx, dword [ebp - 4]
cmp byte [ebx], 0x30
jne 0x406978
mov eax, dword [ebp - 0x18]
movsx eax, byte [eax]
push eax
call fcn.00441c9f
cmp eax, 0x58
pop ecx
je 0x4069a0
cmp byte [ebx], 0x2d
jne 0x406995
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x30
jne 0x406995
movsx eax, byte [ebx + 2]
push eax
call fcn.00441c9f
cmp eax, 0x58
pop ecx
je 0x4069a0
inc edi
mov al, byte [edi]
cmp al, 0x30
jl 0x4069a0
cmp al, 0x39
jle 0x406995
mov eax, dword [ebp - 8]
test eax, eax
je 0x4069ca
mov ecx, dword [ebp - 0x48]
cmp dword [ebp + ecx - 0x35b0], 0xa
jge 0x4069ca
cmp eax, 0x1fe
jg 0x407230
inc eax
mov dword [esi + 8], 0x24
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x28]
mov esi, edi
sub esi, dword [ebp - 4]
shl eax, 4
push esi
push dword [ebp - 4]
mov dword [ebp + eax - 0x35a0], 4
push ebx
mov dword [ebp + eax - 0x35a8], ebx
call fcn.00455650
add ebx, esi
add esp, 0xc
mov byte [ebx], 0
inc ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], edi
jmp 0x406b0f
cmp ebx, 0x3d
jne 0x406a19
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x13
jmp 0x406b0c
mov dword [esi + 8], 0x26
jmp 0x406b0c
sub eax, 0x7c
je 0x406ae3
dec eax
dec eax
je 0x406ada
cmp byte [ebp - 0x61], 0x2e
jne 0x406a66
cmp ebx, 0x3d
jne 0x406a50
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x17
jmp 0x406b0c
cmp ebx, 0x20
je 0x406a5a
cmp ebx, 9
jne 0x406a66
mov dword [esi + 8], 0x24
jmp 0x406b0c
mov edi, dword [ebp - 0x18]
jmp 0x406a6c
inc edi
movsx eax, byte [edi]
push eax
push 0x45bdec
call fcn.00455d80
test eax, eax
pop ecx
pop ecx
je 0x406a6b
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x406a8f
cmp edi, dword [eax]
jae 0x406bb3
mov eax, edi
sub eax, dword [ebp - 4]
cmp eax, 3
jne 0x40694e
mov eax, dword [ebp - 4]
mov al, byte [eax]
cmp al, 0x6e
je 0x406aae
cmp al, 0x4e
jne 0x40694e
cmp ebx, 0x6f
je 0x406abc
cmp ebx, 0x4f
jne 0x40694e
mov eax, dword [ebp - 4]
mov al, byte [eax + 2]
cmp al, 0x74
je 0x406ace
cmp al, 0x54
jne 0x40694e
mov dword [esi + 8], 0x1c
jmp 0x4069fd
mov dword [esi + 8], 0x31
jmp 0x406b0c
cmp ebx, 0x7c
jne 0x406af4
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x1a
jmp 0x406b0c
cmp ebx, 0x3d
jne 0x406b05
mov dword [ebp - 4], ecx
mov dword [esi + 8], 0x12
jmp 0x406b0c
mov dword [esi + 8], 0x25
inc dword [ebp - 4]
inc dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 8]
jmp 0x4064cc
test edi, edi
je 0x406d7c
cmp esi, 0x1ff
jg 0x407230
cmp byte [edi + 8], 0
je 0x406b82
test esi, esi
je 0x406b66
mov eax, esi
shl eax, 4
lea eax, [ebp + eax - 0x35a0]
cmp dword [eax - 0x10], 0xa
jge 0x406b66
cmp esi, 0x1fe
jg 0x407230
inc esi
mov dword [eax], 0x24
mov dword [ebp - 8], esi
mov eax, esi
shl eax, 4
mov dword [ebp + eax - 0x35a0], 0x37
mov dword [ebp + eax - 0x35a8], ebx
jmp 0x406d60
mov eax, dword [edi]
mov cl, byte [eax]
cmp cl, byte [0x46308d]
jne 0x406cd9
mov ecx, dword [ebp - 0x1c]
movzx edi, word [ecx + 0xa]
add edi, eax
mov esi, 0x45bdec
jmp 0x406ba3
inc edi
movsx eax, byte [edi]
push eax
push esi
call fcn.00455d80
test eax, eax
pop ecx
pop ecx
je 0x406ba2
cmp dword [ebp - 8], 0
je 0x406be2
mov eax, dword [ebp - 8]
shl eax, 4
lea eax, [ebp + eax - 0x35a0]
cmp dword [eax - 0x10], 0xa
jge 0x406be2
cmp dword [ebp - 8], 0x1fe
jg 0x407230
inc dword [ebp - 8]
mov dword [eax], 0x24
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 8]
mov ecx, edi
sub ecx, dword [ebp - 4]
shl ebx, 4
push ecx
push dword [ebp - 4]
mov dword [ebp + ebx - 0x35a0], 5
push eax
mov dword [ebp + ebx - 0x35a4], eax
mov dword [ebp - 0x1c], ecx
call fcn.00455650
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov dword [ebp - 0x48], eax
jmp 0x406c1e
cmp ecx, edi
jae 0x406c2a
add eax, 0xc
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x24], eax
jne 0x406c1a
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x48]
push 0xc
cdq
pop ecx
idiv ecx
sub dword [ebp - 0x24], ecx
lea esi, [eax + eax*2]
shl esi, 2
lea eax, [esi + 0xc]
add eax, 3
and eax, 0xfffffffc
call fcn.004561f0
mov dword [ebp - 0x18], esp
push esi
push dword [ebp - 0x48]
push dword [ebp - 0x18]
call fcn.00455650
mov eax, dword [ebp - 0x18]
add esp, 0xc
and dword [esi + eax], 0
jmp 0x406c73
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 4]
add dword [eax], ecx
add eax, 0xc
cmp dword [eax], 0
jne 0x406c68
mov ecx, dword [ebp - 0x18]
mov dword [ebp + ebx - 0x35a8], ecx
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 0x28], ecx
cmp byte [edi], 0x28
jne 0x406cc4
cmp dword [ebp - 8], 0x1fe
jg 0x407230
mov ecx, dword [ebp - 0x18]
inc dword [ebp - 8]
mov byte [eax + 8], 1
mov cl, byte [ecx + 9]
mov byte [eax + 9], cl
mov ecx, dword [ebp - 8]
shl ecx, 4
mov dword [ebp + ecx - 0x35a0], 0x37
mov dword [ebp + ecx - 0x35a8], eax
jmp 0x406cc8
mov byte [eax + 8], 0
mov eax, dword [ebp - 0x28]
inc dword [ebp - 0x28]
mov byte [eax], 0
mov dword [ebp - 4], edi
jmp 0x406d67
test esi, esi
je 0x406d05
mov eax, esi
shl eax, 4
lea eax, [ebp + eax - 0x35a0]
cmp dword [eax - 0x10], 0xa
jge 0x406d05
cmp esi, 0x1fe
jg 0x407230
inc esi
mov dword [eax], 0x24
mov dword [ebp - 8], esi
mov ecx, dword [edi + 4]
mov al, byte [ecx + 0xf]
test al, al
jne 0x406d15
mov eax, dword [ecx + 4]
mov al, byte [eax + 0xf]
cmp al, 1
jne 0x406d3e
cmp byte [0x46534d], 0
jne 0x406d2c
call fcn.00401d1e
cmp dword [eax], 0
je 0x406d3e
mov eax, esi
shl eax, 4
mov dword [ebp + eax - 0x35a0], 3
jmp 0x406d56
mov eax, esi
shl eax, 4
and dword [ebp + eax - 0x35a4], 0
mov dword [ebp + eax - 0x35a0], 5
mov ecx, dword [edi + 4]
mov dword [ebp + eax - 0x35a8], ecx
movzx eax, word [edi + 0xa]
add dword [ebp - 4], eax
add dword [ebp - 0x24], 0xc
inc dword [ebp - 8]
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 4]
jmp 0x4064a4
cmp esi, 0x1ff
jg 0x407230
xor edi, edi
shl esi, 4
lea eax, [ebp - 0x84]
inc edi
and dword [ebp - 0x1c], 0
mov dword [ebp + esi - 0x35a0], 0x38
mov dword [ebp - 0x7c], 6
mov dword [ebp - 0xa88], eax
lea ecx, [ebp - 0x35a8]
mov dword [ebp - 8], edi
mov esi, dword [ecx + 8]
lea eax, [ebp - 0xa88]
mov ebx, edi
sub eax, 4
shl ebx, 2
cmp esi, 6
mov edx, dword [ebx + eax]
mov edx, dword [edx + 8]
mov dword [ebp - 0x10], edx
jge 0x406e50
cmp esi, 5
jne 0x406e33
cmp dword [ecx + 4], 0
jne 0x406e33
mov eax, dword [ecx]
mov bl, byte [eax + 0xf]
test bl, bl
jne 0x406df2
mov edx, dword [eax + 4]
mov bl, byte [edx + 0xf]
cmp bl, 1
je 0x406e09
mov dl, byte [eax + 0xf]
test dl, dl
jne 0x406e04
mov eax, dword [eax + 4]
mov dl, byte [eax + 0xf]
cmp dl, 2
jne 0x406e33
mov eax, dword [ecx + 0x18]
cmp eax, 0x17
jg 0x406e16
cmp eax, 0xc
jge 0x406e2c
cmp eax, 7
je 0x406e2c
cmp eax, 8
je 0x406e2c
cmp dword [ebp - 0x10], 0x35
je 0x406e2c
cmp dword [ebp - 0x10], 0x36
jne 0x406e33
mov dword [ecx + 8], 3
mov eax, dword [ebp - 0x30]
lea eax, [ebp + eax*4 - 0x1288]
mov dword [eax], ecx
mov eax, dword [eax]
add ecx, 0x10
and dword [eax + 0xc], 0
inc dword [ebp - 0x30]
jmp 0x406db9
mov edx, esi
sub edx, 9
je 0x406fd9
dec edx
je 0x406f8d
sub edx, 0xe
je 0x406f9d
sub edx, 0x1f
je 0x406f7f
dec edx
je 0x406f6f
movzx eax, byte [esi + 0x464468]
cdq
push 2
pop edi
idiv edi
movzx eax, byte [esi + 0x464468]
add edx, eax
mov eax, dword [ebp - 0x10]
movzx edi, byte [eax + 0x464468]
cmp edi, edx
jl 0x406eca
cmp esi, 0x17
jg 0x406eae
cmp esi, 0xc
jl 0x406eae
cmp eax, 0x33
jne 0x406eca
cmp eax, 0x34
jne 0x407002
cmp esi, 0x2f
jl 0x406ec1
cmp esi, 0x33
jle 0x406eca
cmp esi, 0x1c
jne 0x407002
cmp esi, 0x1b
jg 0x406ee5
cmp esi, 0x19
jl 0x406ee5
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x406ee5
mov eax, dword [ebp + eax*4 - 0x128c]
mov dword [eax + 0xc], ecx
cmp esi, 0xb
je 0x406ef6
inc dword [ebp - 8]
mov dword [ebp + ebx - 0xa88], ecx
jmp 0x406f64
cmp dword [ebp - 0x1c], 0
jne 0x406f64
inc dword [ebp - 8]
cmp dword [ecx + 0x18], 0x38
mov dword [ebp + ebx - 0xa88], ecx
lea eax, [ecx + 0x10]
je 0x406f64
push 0xc
pop edi
cmp dword [eax + 0x18], 0x1d
jne 0x406f64
mov edx, dword [eax + 8]
cmp edx, 3
je 0x406f58
cmp edx, 5
jne 0x406f64
cmp dword [eax + 4], 0
jne 0x406f64
mov esi, dword [eax]
mov dl, byte [esi + 0xf]
test dl, dl
jne 0x406f3a
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 1
je 0x406f51
mov dl, byte [esi + 0xf]
test dl, dl
jne 0x406f4c
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 2
jne 0x406f64
mov dword [eax + 8], 3
mov dword [eax + 0x18], edi
add eax, 0x20
cmp dword [eax + 8], 0x38
jne 0x406f12
add ecx, 0x10
mov edi, dword [ebp - 8]
jmp 0x406db9
cmp dword [ebp - 0x10], 6
je 0x407025
cmp dword [ebp - 0x10], 0xa
jmp 0x406ffc
inc dword [ebp - 0x1c]
mov dword [ebp + ebx - 0xa88], ecx
inc edi
add ecx, 0x10
mov dword [ebp + edi*4 - 0xa88], ecx
inc edi
add ecx, 0x10
jmp 0x406db6
cmp dword [ebp - 0x10], 6
je 0x407230
mov esi, dword [ebp - 0x30]
dec edi
cmp dword [ebp - 0x10], 0x19
lea edx, [ebp + edi*4 - 0xa88]
mov eax, dword [edx]
mov dword [ebp - 8], edi
mov dword [ebp + esi*4 - 0x1288], eax
jne 0x406e44
mov dword [eax + 0xc], ecx
inc edi
mov dword [edx], ecx
mov dword [ebp - 8], edi
add ecx, 0x10
jmp 0x406e48
cmp dword [ebp - 0x10], 0xa
jne 0x406ff8
dec edi
mov eax, dword [eax + edi*4]
add ecx, 0x10
cmp dword [eax + 8], 0x37
mov dword [ebp - 8], edi
jne 0x406db9
dec dword [ebp - 0x1c]
jmp 0x407002
cmp dword [ebp - 0x10], 6
je 0x407230
dec dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0xa88]
mov edx, dword [ebp - 0x30]
and dword [eax + 0xc], 0
inc dword [ebp - 0x30]
mov dword [ebp + edx*4 - 0x1288], eax
jmp 0x406f67
dec edi
xor ecx, ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x30]
jge 0x408808
mov eax, ecx
shl eax, 2
mov ebx, dword [ebp + eax - 0x1288]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 8]
cmp eax, 6
jge 0x407281
cmp eax, 5
jne 0x4085d4
mov eax, dword [ebx + 4]
xor edi, edi
cmp eax, edi
jne 0x407147
mov ecx, dword [ebx]
push edi
call fcn.00401d64
mov esi, eax
inc esi
cmp esi, 1
jne 0x4070a1
mov eax, dword [ebx]
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x40708d
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 1
je 0x4085cd
mov dword [ebx], 0x4585d8
jmp 0x407ac6
mov ecx, dword [ebx]
mov al, byte [ecx + 0xf]
test al, al
jne 0x4070b0
mov eax, dword [ecx + 4]
mov al, byte [eax + 0xf]
cmp al, 1
jne 0x4070c1
call fcn.00401d1e
cmp dword [eax], edi
jne 0x4085cd
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
cmp esi, eax
ja 0x4070da
mov eax, dword [ebp - 0x28]
add dword [ebp - 0x28], esi
jmp 0x407129
cmp esi, 0x1001
jae 0x407100
cmp dword [ebp - 0x50], 0x9c40
jae 0x407100
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call fcn.004561f0
add dword [ebp - 0x50], esi
mov dword [ebp - 0x2c], esp
jmp 0x40712c
cmp dword [ebp - 0x34], 0xc8
je 0x40871f
push esi
call fcn.0043ea34
cmp eax, edi
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x15a8], eax
je 0x40871f
inc dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
push dword [ebp - 0x2c]
mov ecx, dword [ebx]
call fcn.00401d64
mov eax, dword [ebp - 0x2c]
mov dword [ebx], eax
mov dword [ebx + 8], 4
jmp 0x4085d4
mov esi, dword [ebx]
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], edi
cmp dword [esi], edi
mov dword [ebp - 4], eax
je 0x4071c2
mov eax, dword [ebp - 4]
jmp 0x407174
cmp edi, 0xfd
jge 0x407180
mov cl, byte [eax]
mov byte [ebp + edi - 0x184], cl
inc edi
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [esi]
jb 0x40715e
cmp edi, 0xfd
jl 0x407188
cmp eax, dword [esi]
jb 0x4085d4
mov ecx, dword [esi + 4]
push 0
call fcn.00401d64
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x4085d4
mov ecx, dword [esi + 4]
lea eax, [ebp + edi - 0x184]
push eax
call fcn.00401d64
add edi, eax
movzx eax, word [esi + 0xa]
add dword [ebp - 4], eax
add esi, 0xc
cmp dword [esi], 0
jne 0x407159
mov ecx, dword [ebp - 4]
jmp 0x4071d8
cmp edi, 0xfd
jge 0x4071e6
mov byte [ebp + edi - 0x184], al
inc edi
inc ecx
mov al, byte [ecx]
test al, al
jne 0x4071c7
cmp edi, 0xfd
jl 0x4071ef
cmp byte [ecx], 0
jne 0x4085d4
test edi, edi
je 0x4085d4
mov byte [ebp + edi - 0x184], 0
cmp byte [esi + 8], 0
mov ecx, 0x465c88
lea eax, [ebp - 0x184]
je 0x407253
push edi
push eax
call fcn.0044bf78
test eax, eax
mov dword [esi + 4], eax
je 0x407230
movzx ecx, byte [esi + 9]
cmp ecx, dword [eax + 0xc]
jg 0x407230
cmp ecx, dword [eax + 0x10]
jge 0x408711
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x40724b
cmp dword [ebp - 0x60], 0
je 0x40724b
push 1
push 0
push 0xffffffffffffffff
push dword [ebp - 0x60]
call fcn.00401592
mov esi, dword [ebp - 0x34]
jmp 0x4089fc
push 0
push 3
push edi
push eax
call fcn.0041c17a
test eax, eax
je 0x40891c
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x407273
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 1
jne 0x4085d4
jmp 0x408415
cmp eax, 0x37
jne 0x4077cd
mov eax, dword [ebx]
movzx esi, byte [eax + 9]
cmp esi, edi
mov edx, dword [eax + 4]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x68], esi
jg 0x407230
cmp byte [edx + 0x31], 0
je 0x4073f1
mov eax, edx
mov dword [ebx + 8], 1
mov ecx, dword [eax]
mov dword [ebx], ecx
lea ecx, [ebp - 0x184]
mov dword [ebx + 4], ecx
mov ecx, dword [ebx + 0xc]
and dword [ebx + 0xc], 0
sub edi, esi
mov dword [ebp - 0x18], ecx
lea ecx, [ebp + edi*4 - 0xa88]
push esi
push ecx
push ebx
mov dword [ebp - 8], edi
call dword [eax + 4]
add esp, 0xc
test edi, edi
jne 0x4072fa
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jne 0x4072fa
cmp dword [ebp - 0x54], edi
mov dword [ebp - 0x1c], 1
je 0x4072fe
xor esi, esi
inc esi
jmp 0x407300
and dword [ebp - 0x1c], 0
xor esi, esi
mov edx, dword [ebx + 0xc]
xor ecx, ecx
inc ecx
test edx, edx
je 0x4073a4
cmp edx, dword [ebx]
jne 0x40738a
test esi, esi
jne 0x40872d
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jge 0x407388
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax - 0x1284]
cmp dword [eax + 8], 0xc
jne 0x407388
test edi, edi
je 0x407388
mov eax, dword [ebp + edi*4 - 0xa8c]
cmp dword [eax + 8], 3
jne 0x407388
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x407353
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 1
jne 0x407388
push dword [ebx + 4]
mov esi, dword [ebp + edi*4 - 0xa8c]
mov ecx, dword [esi]
dec edi
push edx
mov dword [ebp - 8], edi
call fcn.0041c766
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1288]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esi]
jmp 0x408415
xor ecx, ecx
cmp dword [ebp - 0x34], 0xc8
je 0x4087d7
mov eax, dword [ebp - 0x34]
inc dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x15a8], edx
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x4085d4
cmp eax, 2
je 0x4085d4
test esi, esi
jne 0x408740
mov eax, dword [ebx]
cmp byte [eax], 0
jne 0x4073d9
mov dword [ebx], 0x4585d8
jmp 0x4085d4
test ecx, ecx
mov dword [ebp - 0x2c], eax
je 0x407703
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
sete cl
jmp 0x407703
cmp dword [edx + 0x28], 0
jle 0x407474
mov edx, dword [edx + 0xc]
cmp esi, edx
mov eax, esi
jl 0x407402
mov eax, edx
dec eax
cmp eax, 0xffffffff
jle 0x407456
mov esi, eax
shl esi, 4
lea ecx, [ebp + edi*4 - 0xa88]
inc eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], eax
sub dword [ebp - 0x18], 4
mov eax, dword [ebp - 0x18]
mov edi, dword [eax]
cmp dword [edi + 8], 3
jne 0x407448
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
cmp word [eax + esi + 4], 0
jne 0x407448
mov ecx, dword [edi]
call fcn.00401d39
mov dword [edi], eax
mov dword [edi + 8], 4
sub esi, 0x10
dec dword [ebp - 0x1c]
jne 0x40741b
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 8]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.0041c658
add esp, 0xc
test eax, eax
je 0x4087d7
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xc]
dec eax
cmp eax, esi
mov dword [ebp - 0x10], eax
jl 0x4074f4
mov edi, eax
sub eax, esi
shl edi, 4
inc eax
sub dword [ebp - 0x10], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
add eax, edi
cmp word [eax + 4], 0
je 0x4074a6
mov ecx, dword [eax]
and dword [ecx + 4], 0
mov byte [ecx + 0xf], 1
movzx ecx, word [eax + 6]
dec ecx
je 0x4074d3
dec ecx
je 0x4074c4
dec ecx
jne 0x4074e3
fld qword [eax + 8]
push ecx
push ecx
mov ecx, dword [eax]
fstp qword [esp]
call fcn.0041c84a
jmp 0x4074e3
push dword [eax + 0xc]
mov ecx, dword [eax]
push dword [eax + 8]
call fcn.00401928
jmp 0x4074e3
mov ecx, dword [eax]
push 1
push 0
push 0xffffffffffffffff
push dword [eax + 8]
call fcn.00401592
sub edi, 0x10
dec dword [ebp - 0x18]
jne 0x40748d
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
jle 0x407565
mov ecx, eax
shl ecx, 4
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + edi*4 - 0xa8c]
dec edi
cmp dword [eax + 8], 6
mov dword [ebp - 8], edi
jge 0x408750
mov esi, dword [edx + 8]
add ecx, esi
cmp word [ecx + 4], 0
je 0x407548
cmp dword [eax + 8], 3
jne 0x408768
mov eax, dword [eax]
mov ecx, dword [ecx]
jmp 0x407535
mov eax, dword [eax + 4]
cmp byte [eax + 0xf], 0
je 0x407532
cmp eax, ecx
je 0x407553
mov dword [ecx + 4], eax
mov byte [ecx + 0xf], 0
jmp 0x407553
mov ecx, dword [ecx]
push eax
call fcn.004017f3
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
dec dword [ebp - 0x10]
sub ecx, 0x10
cmp dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x18], ecx
jg 0x407501
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x2c]
push eax
call fcn.00408a88
cmp eax, 8
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
je 0x4087e4
test eax, eax
je 0x4087e4
test edi, edi
mov edx, dword [0x4651cc]
jne 0x407608
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jne 0x407608
mov esi, dword [ebp - 0x54]
test esi, esi
mov dword [ebp - 0x1c], 1
je 0x4075cf
cmp dword [ebp - 0x40], 0
je 0x408780
cmp edx, dword [ebp - 0xc]
jne 0x408780
cmp byte [esi + 0xe], 0
je 0x408780
test byte [esi + 0xd], 4
jne 0x408780
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 3
je 0x4087bf
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx], 0
jne 0x40760e
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], 4
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.00401c62
add esp, 0xc
jmp 0x4085d4
and dword [ebp - 0x1c], 0
jmp 0x4075db
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jge 0x4076d7
mov eax, dword [ebp - 0x14]
shl eax, 2
mov eax, dword [ebp + eax - 0x1284]
cmp dword [eax + 8], 0xc
jne 0x4076d7
test edi, edi
je 0x4076d7
mov eax, dword [ebp + edi*4 - 0xa8c]
cmp dword [eax + 8], 3
jne 0x4076d7
mov esi, dword [eax]
mov al, byte [esi + 0xf]
test al, al
jne 0x40765a
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 1
jne 0x4076d7
cmp dword [ebp - 0x40], 0
je 0x407675
cmp edx, dword [ebp - 0xc]
jne 0x407675
cmp byte [esi + 0xe], 0
je 0x407675
test byte [esi + 0xd], 4
je 0x4076d7
dec edi
push ecx
mov dword [ebp - 8], edi
call fcn.00455c50
pop ecx
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [0x468690]
jne 0x4076a9
cmp eax, 0x40
jb 0x4076a9
push eax
push ecx
mov ecx, esi
call fcn.0041c766
and dword [0x468690], 0
and dword [0x468694], 0
jmp 0x4076b6
push 1
push 0
push eax
push ecx
mov ecx, esi
call fcn.00401592
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1288]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov dword [ebx], esi
mov dword [ebx + 8], 3
jmp 0x4075f0
cmp ecx, dword [0x468690]
jne 0x407700
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
jne 0x407703
mov eax, dword [ebp - 0x14]
jmp 0x4076f8
mov edx, dword [ebp + eax*4 - 0x1288]
cmp dword [edx + 8], 0x37
je 0x407700
inc eax
cmp eax, dword [ebp - 0x30]
jl 0x4076eb
jmp 0x407703
xor ecx, ecx
inc ecx
test ecx, ecx
mov dword [ebx + 8], 4
je 0x4077ad
push dword [ebp - 0x2c]
call fcn.00455c50
mov esi, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x28]
pop ecx
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
inc esi
cmp esi, eax
ja 0x407743
push esi
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call fcn.00455650
add esp, 0xc
add dword [ebp - 0x28], esi
jmp 0x4077b0
cmp esi, 0x1001
jae 0x407775
cmp dword [ebp - 0x50], 0x9c40
jae 0x407775
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call fcn.004561f0
mov eax, esp
push esi
push dword [ebp - 0x2c]
push eax
call fcn.00455650
add esp, 0xc
add dword [ebp - 0x50], esi
jmp 0x4077b0
cmp dword [ebp - 0x34], 0xc8
je 0x4087d7
push esi
call fcn.0043ea34
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x15a8], eax
je 0x4087d7
push esi
push dword [ebp - 0x2c]
push eax
call fcn.00455650
add esp, 0xc
inc dword [ebp - 0x34]
jmp 0x4077b0
mov eax, dword [ebp - 0x2c]
mov dword [ebx], eax
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x31], 0
jne 0x4085d4
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp - 0x40]
push ecx
push eax
jmp 0x4075fb
cmp eax, 0x18
jne 0x407802
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x408711
cmp dword [ebp - 8], 0
je 0x408711
dec dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + ecx*4 - 0xa88]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0xc], eax
jmp 0x4085de
test edi, edi
je 0x407230
mov esi, dword [ebp + edi*4 - 0xa8c]
mov edx, dword [esi + 8]
dec edi
cmp edx, 6
mov dword [ebp - 8], edi
jge 0x407230
cmp eax, 0x19
jne 0x40785e
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x407230
inc ecx
cmp dword [ebp + ecx*4 - 0x1288], eax
mov dword [ebp - 0x14], ecx
je 0x40784d
mov edx, eax
inc ecx
cmp dword [ebp + ecx*4 - 0x1288], edx
jne 0x407840
mov dword [ebp - 0x14], ecx
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4085d4
cmp eax, 0xb
je 0x408711
cmp eax, 0xc
je 0x4078a9
mov eax, edx
xor edi, edi
sub eax, edi
je 0x40789d
sub eax, 3
je 0x407894
dec eax
jne 0x4078a2
mov eax, dword [esi]
push edi
push 1
push edi
push 1
push eax
mov dword [ebp - 0x24], eax
call fcn.00401b1d
add esp, 0x14
mov edi, eax
jmp 0x4078a4
mov ecx, dword [esi]
call fcn.00401d39
jmp 0x40787e
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov edi, edx
mov dword [ebp - 0x4c], edi
jmp 0x4078ac
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x30
mov dword [ebp - 0x18], ecx
jg 0x4079f1
je 0x4079a1
cmp eax, 7
jl 0x407b00
cmp eax, 8
jle 0x407a1e
cmp eax, 0x19
jle 0x407b00
cmp eax, 0x1b
jle 0x407941
cmp eax, 0x1c
je 0x4079a1
cmp eax, 0x2f
jne 0x407b00
cmp edi, 1
jne 0x407921
cmp dword [esi + 8], edi
jne 0x407909
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x407910
push edx
call fcn.00401a7c
pop ecx
neg eax
adc edx, 0
neg edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x407ac6
cmp edi, 2
jne 0x4084f7
cmp dword [esi + 8], edi
jne 0x407933
fld qword [esi]
jmp 0x40793a
push edx
call fcn.004011d5
pop ecx
fchs
jmp 0x407ac4
cmp edi, 1
jne 0x40795d
cmp dword [esi + 8], edi
jne 0x407952
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x407959
push edx
call fcn.00401a7c
pop ecx
or eax, edx
jmp 0x40799d
cmp edi, 2
jne 0x40799a
cmp dword [esi + 8], edi
jne 0x40796b
fld qword [esi]
jmp 0x407972
push edx
call fcn.004011d5
pop ecx
fld qword [0x45aab0]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4079ec
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x4085d4
cmp byte [edx], 0
je 0x407985
jmp 0x4079ec
cmp edi, 1
jne 0x4079bd
cmp dword [esi + 8], edi
jne 0x4079b2
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4079b9
push edx
call fcn.00401a7c
pop ecx
or eax, edx
jmp 0x4079ea
cmp edi, 2
jne 0x4079e7
cmp dword [esi + 8], edi
jne 0x4079cb
fld qword [esi]
jmp 0x4079d2
push edx
call fcn.004011d5
pop ecx
fld qword [0x45aab0]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x407985
jmp 0x4079ec
cmp byte [edx], 0
jne 0x407985
xor eax, eax
inc eax
jmp 0x407987
cmp eax, 0x31
je 0x408505
cmp eax, 0x32
je 0x4084dd
cmp eax, 0x33
je 0x408505
cmp eax, 0x34
jle 0x407b00
cmp eax, 0x36
jg 0x407b00
xor ecx, ecx
cmp eax, 0x35
setge cl
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 8]
cmp ecx, 3
jne 0x407b39
test edi, edi
je 0x407ace
cmp eax, 7
je 0x407a4d
cmp eax, 0x35
je 0x407a4d
or dword [ebp - 0x1c], 0xffffffff
jmp 0x407a54
mov dword [ebp - 0x1c], 1
cmp edi, 1
push edx
jne 0x407a79
call fcn.00401a7c
mov dword [ebx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 4], edx
cdq
add eax, dword [ebx]
pop ecx
adc edx, dword [ebx + 4]
mov ecx, dword [esi]
push edx
push eax
call fcn.00401928
jmp 0x407a92
call fcn.004011d5
fst qword [ebx]
fild dword [ebp - 0x1c]
push ecx
mov ecx, dword [esi]
fadd st(1)
fstp qword [esp]
fstp st(0)
call fcn.0041c84a
cmp dword [ebp - 0x18], 0
je 0x407ac6
mov esi, dword [esi]
mov al, byte [esi + 0xf]
test al, al
jne 0x407aa7
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 1
je 0x4085cb
cmp edi, 1
jne 0x407abf
mov eax, dword [ebp - 0x1c]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp 0x407ac6
fild dword [ebp - 0x1c]
fadd qword [ebx]
fstp qword [ebx]
mov dword [ebx + 8], edi
jmp 0x4085d4
cmp ecx, 3
jne 0x407b39
mov ecx, dword [esi]
push 1
xor edi, edi
push edi
push 0xffffffffffffffff
push edi
call fcn.00401592
cmp dword [ebp - 0x18], edi
je 0x407b39
mov esi, dword [esi]
mov al, byte [esi + 0xf]
test al, al
jne 0x407af6
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 1
je 0x4085cb
jmp 0x407b39
cmp dword [ebp - 8], ecx
je 0x407230
dec dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov edi, dword [ebp + ecx*4 - 0xa88]
mov ecx, dword [edi + 8]
cmp ecx, 6
jge 0x407230
cmp eax, 0x17
jg 0x407bf2
cmp eax, 0xc
jl 0x407bf2
cmp ecx, 3
je 0x407b48
and dword [ebx + 8], 0
mov dword [ebx], 0x4585d8
jmp 0x4085d4
add eax, 0xfffffff4
cmp eax, 0xb
ja case.default.0x407b54
jmp dword [eax*4 + 0x408a10]
mov ecx, dword [edi]
push esi
call fcn.004017f3
mov eax, dword [edi]
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x407b72
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 2
jne 0x408415
mov eax, dword [ebx + 0xc]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0xc], eax
jmp 0x4085d4
mov dword [ebx + 8], 0x2a
jmp case.default.0x407b54
mov dword [ebx + 8], 0x2b
jmp case.default.0x407b54
mov dword [ebx + 8], 0x2c
jmp case.default.0x407b54
mov dword [ebx + 8], 0x2d
jmp case.default.0x407b54
mov dword [ebx + 8], 0x2e
jmp case.default.0x407b54
mov dword [ebx + 8], 0x25
jmp case.default.0x407b54
mov dword [ebx + 8], 0x26
jmp case.default.0x407b54
mov dword [ebx + 8], 0x27
jmp case.default.0x407b54
mov dword [ebx + 8], 0x28
jmp case.default.0x407b54
mov dword [ebx + 8], 0x29
jmp case.default.0x407b54
mov dword [ebx + 8], 0x24
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
mov ecx, dword [edi + 8]
mov eax, ecx
sub eax, 0
je 0x407c25
sub eax, 3
je 0x407c1c
dec eax
jne 0x407c2a
mov eax, dword [edi]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0x48], eax
call fcn.00401b1d
add esp, 0x14
jmp 0x407c2c
mov ecx, dword [edi]
call fcn.00401d39
jmp 0x407c06
mov eax, dword [edi]
mov dword [ebp - 0x48], eax
mov eax, ecx
cmp dword [ebp - 0x4c], 0
je 0x408095
test eax, eax
je 0x408095
mov ecx, dword [ebx + 8]
cmp ecx, 0x24
je 0x408095
cmp dword [ebp - 0x4c], 1
jne 0x407c5a
cmp eax, 1
jne 0x407c5a
cmp ecx, 0x2d
jne 0x407c6c
cmp ecx, 0x29
jg 0x407e7d
cmp ecx, 0x25
jl 0x407e7d
mov eax, dword [esi + 8]
dec eax
je 0x407c97
dec eax
je 0x407c88
push dword [ebp - 0x24]
call fcn.00401a7c
mov esi, eax
pop ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edx
jmp 0x407ca5
fld qword [esi]
call fcn.0045676c
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jmp 0x407ca2
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x38], eax
mov esi, dword [ebp - 0x3c]
mov eax, dword [edi + 8]
dec eax
je 0x407cc2
dec eax
je 0x407cb9
push dword [ebp - 0x48]
call fcn.00401a7c
pop ecx
jmp 0x407cc7
fld qword [edi]
call fcn.0045676c
jmp 0x407cc7
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov ecx, dword [ebx + 8]
xor edi, edi
inc edi
cmp ecx, 0x27
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x10], edi
jg 0x407d68
je 0x407d5e
sub ecx, 0x1d
cmp ecx, 9
ja case.0x407ced.36
jmp dword [ecx*4 + 0x408a40]
cmp eax, esi
jne 0x407d3e
cmp edx, dword [ebp - 0x38]
jne 0x407d3e
mov eax, edi
jmp 0x407d40
cmp eax, esi
jne 0x407cfd
cmp edx, dword [ebp - 0x38]
je 0x407d3e
jmp 0x407cfd
cmp edx, dword [ebp - 0x38]
jl 0x407d3e
jg 0x407cfd
cmp eax, esi
jbe 0x407d3e
jmp 0x407cfd
cmp edx, dword [ebp - 0x38]
jg 0x407d3e
jl 0x407cfd
cmp eax, esi
jae 0x407d3e
jmp 0x407cfd
cmp edx, dword [ebp - 0x38]
jl 0x407d3e
jg 0x407cfd
cmp eax, esi
jb 0x407d3e
jmp 0x407cfd
cmp edx, dword [ebp - 0x38]
jg 0x407d3e
jl 0x407cfd
cmp eax, esi
jbe 0x407cfd
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
jmp 0x407e76
or eax, esi
or edx, dword [ebp - 0x38]
jmp 0x407e73
xor eax, esi
xor edx, dword [ebp - 0x38]
jmp 0x407e73
and eax, esi
and edx, dword [ebp - 0x38]
jmp 0x407e73
sub ecx, 0x28
je 0x407e6c
dec ecx
je 0x407e63
dec ecx
je 0x407e5c
dec ecx
je 0x407e55
dec ecx
je 0x407e48
dec ecx
dec ecx
je 0x407e30
sub ecx, 6
jne case.0x407ced.36
mov ecx, eax
or ecx, edx
jne 0x407dc1
cmp dword [ebp - 0x38], 0
jg 0x407dcb
jl case.default.0x408145
test esi, esi
jae 0x407dcb
mov dword [ebx], 0x4585d8
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
mov dword [ebx + 8], eax
jmp 0x4085ab
test edx, edx
jg 0x407dcb
jl 0x407dcf
test eax, eax
jb 0x407dcf
xor edi, edi
jmp 0x407ddc
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
fild qword [ebp - 0x3c]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x74]
fstp qword [esp]
call fcn.0041f8a3
test edi, edi
fst qword [ebp - 0x20]
fstp qword [ebx]
je 0x407e12
push 0
push 2
push dword [ebp - 0x38]
push esi
call fcn.004565c0
or eax, edx
je 0x407e12
fld qword [ebp - 0x20]
fchs
fstp qword [ebx]
cmp dword [ebp - 0x38], 0
jg 0x407e27
jl 0x407e1e
test esi, esi
jae 0x407e27
mov dword [ebp - 0x10], 2
jmp case.0x407ced.36
fld qword [ebx]
call fcn.0045676c
jmp 0x407e73
mov ecx, esi
or ecx, dword [ebp - 0x38]
je case.default.0x408145
push dword [ebp - 0x38]
push esi
push edx
push eax
call fcn.004566c0
jmp 0x407e73
push dword [ebp - 0x38]
push esi
push edx
push eax
call fcn.00456680
jmp 0x407e73
sub eax, esi
sbb edx, dword [ebp - 0x38]
jmp 0x407e73
add eax, esi
adc edx, dword [ebp - 0x38]
jmp 0x407e73
mov ecx, esi
call fcn.004567f0
jmp 0x407e73
mov ecx, esi
call fcn.00456820
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp case.0x407ced.36
mov eax, dword [esi + 8]
dec eax
je 0x407e95
dec eax
je 0x407e91
push dword [ebp - 0x24]
call fcn.00401220
pop ecx
jmp 0x407e97
fld qword [esi]
jmp 0x407e97
fild qword [esi]
mov eax, dword [edi + 8]
fstp qword [ebp - 0x20]
dec eax
je 0x407eb2
dec eax
je 0x407eae
push dword [ebp - 0x48]
call fcn.00401220
pop ecx
jmp 0x407eb4
fld qword [edi]
jmp 0x407eb4
fild qword [edi]
mov ecx, dword [ebx + 8]
fst qword [ebp - 0x6c]
cmp ecx, 0x1d
jl 0x407ecb
cmp ecx, 0x23
jg 0x407ecb
xor esi, esi
inc esi
mov edi, esi
jmp 0x407ed1
push 2
xor esi, esi
pop edi
inc esi
cmp ecx, 0x23
jg 0x407f5e
je 0x407f54
cmp ecx, 0x1d
jl 0x408064
cmp ecx, 0x1e
jle 0x407f40
cmp ecx, 0x1f
je 0x407f2e
cmp ecx, 0x20
je 0x407f24
cmp ecx, 0x21
je 0x407f1a
cmp ecx, 0x22
jne 0x408064
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 1
je 0x407f50
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x408066
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 5
jmp 0x407f4e
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 0x41
jmp 0x407f0a
fld qword [ebp - 0x20]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x407f0c
jmp 0x407f50
fld qword [ebp - 0x20]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x407f0c
mov eax, esi
jmp 0x407f0e
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 0x41
jmp 0x407f4e
cmp ecx, 0x2a
je 0x40808e
cmp ecx, 0x2b
je 0x408089
cmp ecx, 0x2c
je 0x408084
jle 0x408064
cmp ecx, 0x2e
jle 0x40804a
cmp ecx, 0x34
jne 0x408064
fcom qword [0x45aab0]
fnstsw ax
test ah, 5
jnp 0x407fa0
xor esi, esi
fld qword [0x45aab0]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x407fc1
fld qword [ebp - 0x20]
fcomp qword [0x45aab0]
fnstsw ax
test ah, 5
jnp 0x40803e
test esi, esi
je 0x407fef
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x20]
fstp qword [esp]
call fcn.0041f863
fld qword [0x45aab0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x408040
fld qword [ebp - 0x6c]
fchs
fld qword [ebp - 0x20]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0041f8a3
test esi, esi
fstp qword [ebx]
je 0x408066
fld qword [0x45c988]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x20]
fstp qword [esp]
call fcn.0041f863
push ecx
push ecx
fstp qword [esp]
call fcn.0041f832
fld qword [0x45b458]
fucompp
fnstsw ax
test ah, 0x44
jp 0x408066
fld qword [ebx]
fchs
jmp 0x408091
fstp st(0)
mov dword [ebx], 0x4585d8
xor edi, edi
jmp 0x408066
fld qword [0x45aab0]
fld qword [ebp - 0x20]
fucompp
fnstsw ax
test ah, 0x44
jp 0x40806e
mov dword [ebx], 0x4585d8
xor edi, edi
fstp st(0)
mov dword [ebx + 8], edi
jmp 0x4085ab
cmp ecx, 0x2e
fdiv qword [ebp - 0x20]
fst qword [ebx]
jne 0x408064
push ecx
push ecx
fstp qword [esp]
call fcn.0041f83b
jmp 0x408091
fmul qword [ebp - 0x20]
jmp 0x408091
fsub qword [ebp - 0x20]
jmp 0x408091
fadd qword [ebp - 0x20]
fstp qword [ebx]
jmp 0x408066
mov eax, dword [esi + 8]
dec eax
je 0x4080cb
dec eax
je 0x4080a3
mov eax, dword [ebp - 0x24]
jmp 0x4080df
fld qword [esi]
push ecx
push ecx
fstp qword [esp]
push 0x4651ac
lea eax, [ebp - 0x284]
push pe_nt_image_headers32
push eax
call fcn.00409c5f
add esp, 0x14
lea eax, [ebp - 0x284]
jmp 0x4080df
lea eax, [ebp - 0x284]
push eax
push dword [esi + 4]
push dword [esi]
call fcn.0040195c
add esp, 0xc
mov dword [ebp - 4], eax
mov eax, dword [edi + 8]
dec eax
je 0x408118
dec eax
je 0x4080f0
mov eax, dword [ebp - 0x48]
jmp 0x40812c
fld qword [edi]
push ecx
push ecx
fstp qword [esp]
push 0x4651ac
lea eax, [ebp - 0x184]
push pe_nt_image_headers32
push eax
call fcn.00409c5f
add esp, 0x14
lea eax, [ebp - 0x184]
jmp 0x40812c
lea eax, [ebp - 0x184]
push eax
push dword [edi + 4]
push dword [edi]
call fcn.0040195c
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 8]
add eax, 0xffffffe3
cmp eax, 7
mov dword [ebp - 0x10], 1
ja case.default.0x408145
jmp dword [eax*4 + 0x408a68]
cmp byte [0x4651f5], 0
push dword [ebp - 4]
push dword [ebp - 0xc]
jne 0x408162
call fcn.00441811
jmp 0x408183
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x408283
xor eax, eax
inc eax
jmp 0x408285
push dword [ebp - 4]
push dword [ebp - 0xc]
call fcn.00455990
pop ecx
pop ecx
jmp 0x408168
mov al, byte [0x4651f5]
test al, al
push dword [ebp - 4]
push dword [ebp - 0xc]
jne 0x40819d
call fcn.00441811
jmp 0x4081ae
cmp al, 2
jne 0x4081a9
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x4081b0
call fcn.00455990
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x407ced.36
mov al, byte [0x4651f5]
test al, al
push dword [ebp - 4]
push dword [ebp - 0xc]
jne 0x4081da
call fcn.00441811
jmp 0x4081eb
cmp al, 2
jne 0x4081e6
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x4081ed
call fcn.00455990
pop ecx
pop ecx
test eax, eax
jmp 0x40824a
mov al, byte [0x4651f5]
test al, al
push dword [ebp - 4]
push dword [ebp - 0xc]
jne 0x408207
call fcn.00441811
jmp 0x408218
cmp al, 2
jne 0x408213
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x40821a
call fcn.00455990
pop ecx
pop ecx
test eax, eax
jmp 0x40827d
mov al, byte [0x4651f5]
test al, al
push dword [ebp - 4]
push dword [ebp - 0xc]
jne 0x408234
call fcn.00441811
jmp 0x408245
cmp al, 2
jne 0x408240
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x408247
call fcn.00455990
pop ecx
pop ecx
cmp eax, 0xffffffff
jle 0x408283
jmp 0x408170
mov al, byte [0x4651f5]
test al, al
push dword [ebp - 4]
push dword [ebp - 0xc]
jne 0x408267
call fcn.00441811
jmp 0x408278
cmp al, 2
jne 0x408273
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x40827a
call fcn.00455990
pop ecx
pop ecx
cmp eax, 1
jl 0x408170
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp case.0x407ced.36
cmp dword [esi + 8], 3
jne 0x4082a0
mov ecx, dword [esi]
call fcn.00401cf8
jmp 0x4082a9
push dword [ebp - 4]
call fcn.00455c50
pop ecx
cmp dword [ebp - 0x18], 0
mov dword [ebp - 0x68], eax
je 0x4082ca
mov ecx, dword [ebp - 0x18]
push eax
push dword [ebp - 4]
call fcn.0041c7ea
test eax, eax
je 0x4082ca
mov eax, dword [ebp - 0x18]
jmp 0x408415
cmp dword [edi + 8], 3
jne 0x4082d9
mov ecx, dword [edi]
call fcn.00401cf8
jmp 0x4082e2
push dword [ebp - 0xc]
call fcn.00455c50
pop ecx
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1c], eax
lea eax, [eax + ecx + 1]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x40830a
cmp dword [ebp - 8], 0
jne 0x40830a
mov ecx, dword [ebp - 0x30]
dec ecx
cmp dword [ebp - 0x14], ecx
jne 0x40830a
mov dword [ebp - 0x44], eax
jmp 0x40834f
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x14], eax
jge 0x40834b
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax - 0x1284]
cmp dword [eax + 8], 0xc
jne 0x40834b
mov eax, dword [ebp - 8]
test eax, eax
je 0x40834b
mov eax, dword [ebp + eax*4 - 0xa8c]
cmp dword [eax + 8], 3
jne 0x40834b
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
test cl, cl
jne 0x408346
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 1
je 0x408305
and dword [ebp - 0x44], 0
cmp dword [ebp - 0x44], 0
je 0x40841c
mov ecx, dword [ebp - 0x44]
call fcn.00401d39
cmp eax, dword [ebp - 0xc]
mov dword [ebp - 0x2c], eax
jne 0x408387
push dword [ebp - 0x68]
mov ecx, dword [ebp - 0x44]
push dword [ebp - 4]
call fcn.0041c7ea
test eax, eax
je 0x40841c
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x44], eax
jmp 0x4083ed
cmp eax, dword [ebp - 4]
je 0x40841c
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x44]
push 1
push 0
dec eax
push eax
push 0
mov ecx, esi
call fcn.00401592
test eax, eax
je 0x40891c
mov ecx, esi
call fcn.00401d39
mov edi, dword [ebp - 0x1c]
test edi, edi
mov dword [ebp - 0x2c], eax
je 0x4083cb
push edi
push dword [ebp - 0xc]
push eax
call fcn.00455650
add esp, 0xc
mov eax, dword [ebp - 0x68]
inc eax
push eax
mov eax, dword [ebp - 0x2c]
push dword [ebp - 4]
add edi, eax
push edi
call fcn.00455650
add esp, 0xc
push 0
mov ecx, esi
call fcn.0041c5b7
cmp esi, dword [ebp - 0x54]
je 0x40724b
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1288]
mov eax, dword [eax + 0xc]
dec dword [ebp - 8]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0xa88]
mov eax, dword [eax]
mov dword [ebx], eax
jmp 0x4085cd
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x28]
mov eax, dword [ebp + 0x18]
add ecx, dword [eax]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
ja 0x40843a
mov ecx, dword [ebp - 0x28]
add dword [ebp - 0x28], eax
mov dword [ebx], ecx
jmp 0x408491
cmp eax, 0x1001
jae 0x408464
cmp dword [ebp - 0x50], 0x9c40
jae 0x408464
mov eax, dword [ebp - 0x10]
add eax, 3
and eax, 0xfffffffc
call fcn.004561f0
mov eax, esp
mov dword [ebx], eax
mov eax, dword [ebp - 0x10]
add dword [ebp - 0x50], eax
jmp 0x408491
cmp dword [ebp - 0x34], 0xc8
je 0x408800
push dword [ebp - 0x10]
call fcn.0043ea34
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x15a8], eax
mov dword [ebx], eax
je 0x408800
inc dword [ebp - 0x34]
cmp dword [ebp - 0x1c], 0
je 0x4084a7
push dword [ebp - 0x1c]
push dword [ebp - 0xc]
push dword [ebx]
call fcn.00455650
add esp, 0xc
mov eax, dword [ebp - 0x68]
inc eax
push eax
mov eax, dword [ebx]
add eax, dword [ebp - 0x1c]
push dword [ebp - 4]
push eax
call fcn.00455650
add esp, 0xc
cmp dword [edi + 8], 0
je 0x407db2
cmp dword [esi + 8], 0
je 0x407db2
mov dword [ebp - 0x10], 4
jmp case.0x407ced.36
cmp dword [esi + 8], 3
jne 0x4084f7
mov eax, edx
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x4085d4
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], ecx
jmp 0x4085d4
cmp edi, 1
jne 0x40851e
cmp dword [esi + 8], edi
jne 0x408516
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x408538
push edx
call fcn.00401a7c
jmp 0x408537
cmp edi, 2
jne 0x4085a2
cmp dword [esi + 8], edi
jne 0x408531
fld qword [esi]
call fcn.0045676c
jmp 0x408538
push edx
call fcn.00401aa4
pop ecx
cmp dword [ebx + 8], 0x31
jne 0x40856a
test edx, edx
jl 0x40855e
jg 0x408548
test eax, eax
jb 0x40855e
test edx, edx
jg 0x40855e
jl 0x408553
cmp eax, 0xffffffff
ja 0x40855e
and dword [ebx + 4], 0
not eax
jmp 0x40798c
not edx
not eax
mov dword [ebx + 4], edx
jmp 0x40798c
test edx, edx
jl 0x407985
jg 0x40857f
cmp eax, 0x100
jb 0x407985
test edx, edx
jg 0x407985
jl 0x408592
cmp eax, 0xffffffff
ja 0x407985
movzx eax, byte [eax]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ecx, edx
jmp 0x407989
mov dword [ebx], 0x4585d8
mov dword [ebx + 8], ecx
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x4085d4
push ebx
mov ecx, esi
call fcn.004017f3
mov al, byte [esi + 0xf]
test al, al
jne 0x4085c7
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 2
je 0x4085d4
mov dword [ebx], esi
mov dword [ebx + 8], 3
cmp dword [ebx + 0xc], 0
je 0x4086da
mov ecx, dword [ebx + 8]
mov eax, ecx
sub eax, 0
je 0x408614
sub eax, 3
je 0x40860b
dec eax
jne 0x408619
mov eax, dword [ebx]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0x24], eax
call fcn.00401b1d
add esp, 0x14
mov dword [ebp - 0x4c], eax
jmp 0x40861c
mov ecx, dword [ebx]
call fcn.00401d39
jmp 0x4085f2
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
dec eax
je 0x40865e
dec eax
je 0x408633
mov ecx, dword [ebp - 0x24]
xor eax, eax
cmp byte [ecx], al
setne al
mov edi, eax
jmp 0x40867c
cmp dword [ebx + 8], 2
jne 0x40863d
fld qword [ebx]
jmp 0x408646
push dword [ebp - 0x24]
call fcn.004011d5
pop ecx
fld qword [0x45aab0]
xor edi, edi
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x40867c
inc edi
jmp 0x40867c
xor edi, edi
inc edi
cmp dword [ebx + 8], edi
jne 0x40866d
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x408676
push dword [ebp - 0x24]
call fcn.00401a7c
pop ecx
or eax, edx
jne 0x40867c
xor edi, edi
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 8], 0x19
je 0x4086e9
mov esi, dword [ebp - 0x14]
xor eax, eax
cmp dword [ecx + 8], 0x1a
sete al
cmp edi, eax
jne 0x408711
inc esi
cmp dword [ebp + esi*4 - 0x1288], ecx
mov dword [ebp - 0x14], esi
je 0x4086af
inc esi
cmp dword [ebp + esi*4 - 0x1288], ecx
jne 0x4086a2
mov dword [ebp - 0x14], esi
mov eax, dword [ebp + esi*4 - 0x1288]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4086c3
cmp dword [ecx + 8], 0x19
jne 0x408688
mov eax, edi
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], ecx
jmp 0x4085d4
mov eax, dword [ebp - 8]
inc dword [ebp - 8]
mov dword [ebp + eax*4 - 0xa88], ebx
jmp 0x408711
test edi, edi
jne 0x408711
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1288]
cmp eax, dword [ebx + 0xc]
je 0x408711
mov ebx, dword [ebx + 0xc]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x1288], ebx
jne 0x408702
inc dword [ebp - 0x14]
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
jmp 0x407034
mov eax, dword [ebx]
push dword [eax + 0x10]
mov ecx, dword [ebp - 0x5c]
push edi
jmp 0x408912
push dword [ebx + 4]
mov ecx, dword [ebp - 0x54]
push dword [ebx + 0xc]
call fcn.0041c766
jmp 0x40724b
mov ecx, dword [ebp - 0x54]
push 1
push 0
push 0xffffffffffffffff
push dword [ebx]
jmp 0x407246
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.00401c62
add esp, 0xc
jmp 0x40891c
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.00401c62
add esp, 0xc
jmp 0x407230
push dword [ebp - 0x2c]
call fcn.00455c50
pop ecx
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [0x468690]
jne 0x4087b2
cmp eax, 0x40
jb 0x4087b2
push eax
push ecx
mov ecx, esi
call fcn.0041c766
and dword [0x468690], 0
and dword [0x468694], 0
jmp 0x4087bf
push 1
push 0
push eax
push ecx
mov ecx, esi
call fcn.00401592
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.00401c62
add esp, 0xc
jmp 0x40724b
mov eax, dword [ebp - 0xc]
push dword [eax]
mov ecx, dword [ebp - 0x5c]
jmp 0x408910
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
call fcn.00401c62
add esp, 0xc
and dword [ebp - 0x60], 0
jmp 0x40724b
mov ecx, dword [ebp - 0x5c]
jmp 0x40890b
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 3
je 0x40724b
cmp edi, 1
jne 0x407230
mov ecx, dword [ebp - 0x54]
test ecx, ecx
mov edx, dword [ebp - 0xa88]
mov esi, edx
je 0x408837
push edx
call fcn.004017f3
jmp 0x40724b
mov ebx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
mov ecx, dword [ebx]
mov dword [ebp - 0x60], ecx
je 0x40885f
cmp eax, 1
je 0x408893
cmp eax, 2
je 0x408877
jle 0x40724b
cmp eax, 4
jg 0x40724b
cmp eax, 3
jne 0x4088af
mov ecx, dword [edx]
call fcn.00401d39
mov dword [ebp - 0x2c], eax
mov ecx, dword [esi]
call fcn.00401cf8
jmp 0x4088bb
fld qword [edx]
push ecx
push ecx
fstp qword [esp]
push 0x4651ac
push pe_nt_image_headers32
push ecx
call fcn.00409c5f
add esp, 0x14
jmp 0x4088a7
push ecx
push dword [edx + 4]
push dword [edx]
call fcn.0040195c
push eax
call fcn.00455c50
add esp, 0x10
inc eax
add dword [ebx], eax
jmp 0x40724b
mov edx, dword [edx]
push edx
mov dword [ebp - 0x2c], edx
call fcn.00455c50
pop ecx
mov esi, dword [ebp - 0x5c]
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov ax, word [ecx + eax*4 + 2]
inc edi
cmp ax, 0xff
mov dword [ebp - 0x10], edi
jae 0x4088df
mov eax, 0xff
jmp 0x4088e2
movzx eax, ax
mov ecx, dword [ebp + 0x20]
lea eax, [eax + ecx + 1]
cmp edi, eax
jbe 0x4089d3
mov ecx, dword [ebp + 0x18]
mov edi, dword [ecx]
sub edi, eax
add edi, dword [ebp - 0x10]
push edi
call fcn.0043ea34
test eax, eax
pop ecx
mov dword [ebp + 0x10], eax
jne 0x40892b
mov ecx, esi
push 0x4585d8
push 0
push str.Out_of_memory.__The_current_thread_will_exit.
call fcn.0044a60c
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x60], 0
and dword [eax], 0
jmp 0x40724b
cmp edi, 0x400000
jbe 0x408939
inc dword [0x468698]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov esi, dword [ebx]
sub esi, eax
je 0x408951
push esi
push eax
push dword [ebp + 0x10]
call fcn.00455650
add esp, 0xc
push dword [ebp - 0x10]
mov eax, dword [ebp + 0x10]
push dword [ebp - 0x2c]
add eax, esi
push eax
mov dword [ebx], eax
mov dword [ebp - 0x60], eax
call fcn.00455650
mov eax, dword [ebp + 0x14]
push dword [eax]
call fcn.0043dff1
mov eax, dword [ebp + 0x18]
add esp, 0x10
cmp dword [eax], 0x400000
jbe 0x408985
dec dword [0x468698]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov eax, dword [ebp + 0x18]
add edx, dword [eax]
xor eax, eax
cmp dword [ebp + 8], eax
mov dword [ebp - 0x14], eax
jle 0x4089c1
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
cmp eax, esi
jb 0x4089b5
cmp eax, edx
jae 0x4089b5
sub eax, esi
add eax, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x14]
inc eax
cmp eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
jl 0x408999
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, dword [ebp + 0x18]
mov dword [eax], edi
mov edi, dword [ebp - 0x10]
jmp 0x4089e7
mov eax, dword [ebx]
cmp eax, dword [ebp - 0x2c]
je 0x4089e7
push edi
push dword [ebp - 0x2c]
push eax
call fcn.00455e40
add esp, 0xc
add dword [ebx], edi
jmp 0x40724b
push dword [ebp + esi*4 - 0x15ac]
dec esi
call fcn.0043dff1
pop ecx
test esi, esi
jne 0x4089ee
mov eax, dword [ebp - 0x60]
lea esp, [ebp - 0x35b4]
pop edi
pop esi
pop ebx
leave
ret 0x1c