Function at 0x458360
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x518
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 8]
push esi
mov esi, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
lea eax, [edx*8]
sub eax, edx
mov dword [ebp - 0x4c], ecx
shl eax, 2
mov dword [ebp - 0x80], eax
push edi
mov eax, dword [esi + eax + 0x18]
shl eax, 2
call fcn.004ac040
mov eax, 0x4cefa4
mov dword [ebp - 0x58], esp
mov dword [ebp - 0x78], eax
mov edi, 0x4b431c
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], edi
cmp byte [eax], 1
jne 0x4583d4
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x7c], eax
jmp 0x4583db
mov dword [ebp - 0x7c], 0
mov ecx, dword [ebp - 0x80]
mov eax, dword [esi + ecx + 0x14]
shl eax, 2
call fcn.004ac040
mov eax, dword [ebp - 0x80]
xor edi, edi
mov dword [ebp - 0x30], esp
mov dword [ebp - 4], edi
mov dword [ebp - 0x54], edi
mov eax, dword [esi + eax + 0x10]
cmp dword [eax + 8], 0x45
lea esi, [eax + 8]
mov dword [ebp - 0x2c], eax
je 0x45a662
movsd xmm0, qword [0x4d17b0]
mov eax, dword [ebp - 0xc]
movsd qword [ebp - 0xa0], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x68], xmm0
movsd xmm0, qword [0x4d1690]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x88]
movsd qword [ebp - 0x108], xmm0
movsd xmm0, qword [0x4d16a0]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x8c]
movsd qword [ebp - 0x110], xmm0
mov dword [ebp - 0x74], eax
nop dword [eax]
mov eax, 0x10
mov dword [ebp - 0x6c], edi
call fcn.004ac150
mov eax, dword [ebp - 0x2c]
mov edi, esp
mov dword [ebp - 0xc], edi
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi], edx
mov dword [edi + 4], eax
mov ecx, dword [esi]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], ecx
mov dword [edi + 8], ecx
cmp ecx, 8
jge 0x458804
cmp ecx, 6
jne 0x4587d4
test edx, edx
jne 0x4585c6
mov eax, dword [ebp - 4]
test eax, eax
je case.default.0x459395
mov ecx, dword [ebp - 0x30]
dec eax
mov dword [ebp - 4], eax
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 8]
cmp eax, 5
jne 0x4584c5
mov eax, dword [esi]
jmp 0x4584e6
cmp eax, 4
jne 0x4584e4
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x4584da
mov ecx, dword [eax + 0xc]
call fcn.00414070
test byte [eax + 0x15], 0x40
je 0x4584e4
mov eax, dword [eax]
jmp 0x4584e6
xor eax, eax
push 0
push 0x4daca8
push 0x4dac48
push 0
push eax
call fcn.004acf9d
add esp, 0x14
test eax, eax
je 0x45850b
add eax, 8
mov dword [edi], eax
jmp 0x45a170
lea eax, [ebp - 0x48]
mov ecx, esi
push eax
lea edx, [ebp - 0x510]
call fcn.0044f650
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x3c], ecx
test eax, eax
je 0x45a198
cmp eax, 0xfd
ja 0x45a18b
cmp dword [edi + 4], 2
mov esi, 0x103
mov edx, 3
cmovge esi, edx
cmp word [ecx], 0
je 0x45a6e8
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 1
push edx
lea edx, [ebp - 0x84]
push edx
lea edx, [ebp - 0xcc]
push edx
push esi
push eax
push ecx
mov ecx, 0x4dcd68
call fcn.0041ebd0
mov edx, eax
test edx, edx
jne 0x4585c1
cmp dword [ebp - 0x1c], eax
je 0x45a6e8
mov ecx, dword [ebp - 0xcc]
cmp ecx, 0x4dcd98
setne al
and esi, 0xfffffffc
inc eax
or eax, esi
push eax
push dword [ebp - 0x84]
push ecx
push dword [ebp - 0x48]
mov ecx, 0x4dcd68
push dword [ebp - 0x3c]
call fcn.0041f3d0
mov edx, eax
test edx, edx
je 0x45a6e8
mov eax, dword [edi + 4]
mov dword [edi], edx
mov ecx, dword [ebp - 0x4c]
push eax
push edx
call fcn.00429200
test eax, eax
je 0x45a6e8
mov edx, dword [edi]
mov al, byte [edx + 0x17]
test al, al
jne 0x4585f0
mov ecx, dword [edx + 0xc]
call fcn.00414070
mov ecx, eax
mov al, byte [edx + 0x17]
jmp 0x4585f2
mov ecx, edx
cmp byte [ecx + 0x17], 2
jne 0x458605
push edi
mov ecx, edx
call fcn.00413dc0
jmp 0x45a177
test al, al
jne 0x458618
mov ecx, dword [edx + 0xc]
call fcn.00414070
mov ecx, eax
mov al, byte [edx + 0x17]
jmp 0x45861a
mov ecx, edx
cmp byte [ecx + 0x17], 1
je 0x4587a0
cmp dword [edi + 4], 2
jge 0x4587a0
lea eax, [ebp - 0x310]
mov dword [ebp - 0xf8], 0x4b431c
mov dword [ebp - 0xf4], 0xffffffff
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xd8], 1
mov dword [ebp - 0xf0], 1
cmp byte [edx + 0x17], 0
jne 0x45868d
mov ecx, dword [edx + 0xc]
lea eax, [ebp - 0xf8]
push eax
call fcn.0047e370
jmp 0x4586a0
mov eax, dword [edx]
lea ecx, [ebp - 0xf8]
push dword [edx + 0x18]
push ecx
mov eax, dword [eax]
call eax
add esp, 8
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
je 0x45a1bc
cmp ecx, 8
je 0x45a1bc
mov ecx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xf4]
test ecx, ecx
jne 0x45878d
test esi, esi
je 0x45878d
cmp esi, 0xffffffff
jne 0x4586f0
mov esi, dword [ebp - 0xf8]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4586e1
sub esi, ecx
sar esi, 1
mov eax, dword [ebp - 0xf8]
lea ecx, [ebp - 0x310]
cmp eax, ecx
je 0x458727
cmp dword [ebp - 0xe4], 0
je 0x458716
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x58]
mov dword [edx + ecx*4], edi
inc ecx
mov dword [ebp - 0x38], ecx
mov dword [edi + 8], 0
mov dword [edi], eax
mov dword [edi + 4], esi
jmp 0x45a177
mov eax, dword [ebx + 0x18]
lea edx, [esi + 1]
mov ecx, dword [ebp - 0x44]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
cmp edx, eax
ja 0x45874f
mov eax, dword [ebp - 0x44]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
lea eax, [eax + edx*2]
mov dword [ebp - 0x44], eax
jmp 0x458762
lea eax, [edx + edx]
call fcn.004ac040
lea eax, [esi + 1]
mov dword [ebp - 0x1c], esp
add dword [ebp - 0x54], eax
mov ecx, esp
lea eax, [esi*2 + 2]
push eax
push dword [ebp - 0xf8]
push ecx
call fcn.00497340
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov dword [edi + 8], 0
mov dword [edi], eax
mov dword [edi + 4], esi
jmp 0x45a177
mov eax, dword [ebp - 0xf8]
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
jmp 0x45a177
test al, al
jne 0x4587ae
mov ecx, dword [edx + 0xc]
call fcn.00414070
jmp 0x4587b0
mov eax, edx
test byte [eax + 0x15], 2
je 0x45a170
cmp dword [edi + 4], 0
jne 0x45a170
push edx
mov ecx, 0x4dcd68
call fcn.00429eb0
jmp 0x45a6cf
cmp ecx, 4
jne 0x45a177
cmp byte [edx + 0x17], 0
jne 0x4587ed
mov ecx, dword [edx + 0xc]
call fcn.00414070
jmp 0x4587ef
mov eax, edx
test byte [eax + 0x15], 2
je 0x45a177
cmp dword [ebp - 0x3c], 0
je 0x4587c4
jmp 0x45a177
cmp ecx, 0x44
jne 0x458eaf
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov esi, dword [edx]
mov dword [ebp - 0x50], eax
mov eax, dword [edx + 8]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x24], esi
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], ecx
cmp ecx, edx
jg case.default.0x459395
sub edx, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], edx
lea ecx, [ecx + edx*4]
mov dword [ebp - 0x3c], ecx
test eax, 0x2000
je 0x4588bb
test edx, edx
je case.default.0x459395
and eax, 0xffffdfff
dec edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 4], edx
mov ecx, dword [eax + edx*4]
cmp dword [ecx + 8], 3
je 0x4588be
push 0
lea edx, [ebp - 0x510]
call fcn.0044f650
mov edx, dword [ebp - 4]
mov ecx, eax
mov eax, dword [ebp - 0x30]
add esp, 4
mov dword [ebp - 0x50], ecx
cmp word [ecx], 0
jne 0x4588be
mov esi, dword [eax + edx*4]
mov ecx, dword [esi + 8]
cmp ecx, 5
jne 0x458894
mov eax, esi
jmp 0x4588af
cmp ecx, 4
jne 0x4588e3
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x4588a9
mov ecx, dword [eax + 0xc]
call fcn.00414070
test byte [eax + 0x15], 0x40
je 0x4588b8
cmp dword [eax], 0
jne 0x45a1cb
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x15], 0
test esi, esi
je 0x4588e8
mov eax, 0x10
call fcn.004ac150
mov ecx, esp
mov dword [ebp - 0x14], esp
mov dword [ecx + 8], 5
mov dword [ecx], esi
jmp 0x458a8d
mov esi, dword [ebp - 0x24]
jmp 0x4588be
test edx, edx
je case.default.0x459395
mov ecx, dword [eax + edx*4 - 4]
dec edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x14], ecx
mov eax, dword [ecx + 8]
cmp eax, 5
jne 0x458907
mov eax, ecx
jmp 0x458925
cmp eax, 4
jne 0x45892f
mov eax, dword [ecx]
cmp byte [eax + 0x17], 0
jne 0x45891f
mov ecx, dword [eax + 0xc]
call fcn.00414070
mov ecx, dword [ebp - 0x14]
test byte [eax + 0x15], 0x40
je 0x45892f
mov esi, dword [eax]
test esi, esi
jne 0x458a8d
push 0
lea edx, [ebp - 0x310]
call fcn.0044f650
add esp, 4
mov ecx, 0x4dcd68
push 0
push 0
push 0
push 0x103
push 0
push eax
call fcn.0041ebd0
mov edx, eax
test edx, edx
je 0x4589b4
mov cl, byte [edx + 0x17]
test cl, cl
jne 0x458971
mov ecx, dword [edx + 0xc]
call fcn.00414070
mov cl, byte [edx + 0x17]
jmp 0x458973
mov eax, edx
cmp byte [eax + 0x17], 2
jne 0x4589b4
test cl, cl
jne 0x458987
mov ecx, dword [edx + 0xc]
call fcn.00414070
mov edx, eax
test byte [edx + 0x15], 0x40
je 0x458991
mov eax, dword [edx]
jmp 0x458993
xor eax, eax
push 0
push 0x4dac94
push 0x4dac48
push 0
push eax
call fcn.004acf9d
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x458a8a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
cmp eax, 7
jne 0x4589fa
mov eax, dword [0x4d78c8]
mov edx, dword [ebp - 8]
or edx, 0x20000
mov byte [ebp - 0x15], 1
mov dword [ebp - 8], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx + 0x30]
mov esi, dword [eax + 0xc]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ecx + 8], 4
mov dword [ecx], eax
mov dword [ecx + 4], 0
jmp 0x458a90
mov edx, eax
sub edx, 3
je 0x458a76
sub edx, 1
je 0x458a29
sub eax, 0
je 0x458a76
sub eax, 1
je 0x458a62
sub eax, 1
jne 0x458a52
mov edx, dword [ebp - 8]
mov esi, dword [0x4dd64c]
or edx, 0x20000
mov dword [ebp - 8], edx
jmp 0x458a90
mov eax, dword [ecx]
cmp byte [eax + 0x17], 0
jne 0x458a3c
mov ecx, dword [eax + 0xc]
call fcn.00414070
mov ecx, dword [ebp - 0x14]
movzx eax, byte [eax + 0x15]
and eax, 0x70
cmp eax, 0x10
je 0x458a62
cmp eax, 0x20
je 0x458a15
cmp eax, 0x40
jne 0x458a76
mov edx, dword [ebp - 8]
xor esi, esi
or edx, 0x20000
mov dword [ebp - 8], edx
jmp 0x458a90
mov edx, dword [ebp - 8]
mov esi, dword [0x4dd648]
or edx, 0x20000
mov dword [ebp - 8], edx
jmp 0x458a90
mov edx, dword [ebp - 8]
mov esi, dword [0x4dd640]
or edx, 0x20000
mov dword [ebp - 8], edx
jmp 0x458a90
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x6c]
test edx, 0x4000
mov dword [ebp - 0xc0], 0
cmove eax, dword [ebp - 4]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x310]
mov dword [ebp - 0xc8], 0x4b431c
mov dword [ebp - 0xc4], 0xffffffff
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xa8], 1
mov eax, dword [ecx + 8]
mov dword [ebp - 0x6c], eax
cmp eax, 4
jne 0x458afc
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x20]
mov eax, dword [ebp - 8]
push dword [ebp - 0x3c]
push ecx
push dword [ebp - 0x50]
test eax, 0x1000
je 0x458b23
push eax
lea edx, [ebp - 0xc8]
mov ecx, esi
call fcn.0045ab20
add esp, 0x14
jmp 0x458b37
mov eax, dword [esi]
lea ecx, [ebp - 0xc8]
mov edx, dword [ebp - 8]
push edx
push ecx
mov eax, dword [eax + 0x1c]
mov ecx, esi
call eax
cmp dword [ebp - 0x6c], 4
mov dword [ebp - 0x1c], eax
jne 0x458b46
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x45a1bc
cmp ecx, 4
je 0x458e7d
cmp ecx, 8
je 0x45a1bc
test byte [ebp - 8], 1
mov esi, dword [ebp - 0x4c]
mov dword [0x4dd3ac], esi
je 0x458bb9
cmp dword [ebp - 0xc0], 5
jne 0x458b87
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x458b9a
push eax
call fcn.00497f48
add esp, 4
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + eax*4 - 4]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
jmp 0x45a177
mov edx, dword [ebp - 0xc0]
test edx, edx
je 0x458c00
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc4]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
cmp edx, 5
jne 0x458be9
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 4], edx
mov dword [eax + edx*4], edi
mov edi, edx
inc edi
mov dword [ebp - 4], edi
jmp 0x458ebe
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x2c]
test eax, eax
jne 0x458c25
cmp dword [ecx + 0x18], 0x45
jne 0x458c25
cmp byte [esi], 2
mov dword [ebp - 0x20], 1
je 0x45a1d5
mov esi, dword [ebp - 0x7c]
jmp 0x458c5f
cmp dword [ecx + 0x18], 0x13
mov dword [ebp - 0x20], 0
jne 0x458c5d
test eax, eax
je 0x458c5d
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + eax*4 - 4]
cmp dword [esi + 8], 4
jne 0x458c5d
mov esi, dword [esi]
cmp byte [esi + 0x17], 0
jne 0x458c55
mov ecx, dword [esi + 0xc]
call fcn.00414070
jmp 0x458c57
mov eax, esi
cmp byte [eax + 0x17], 1
je 0x458c5f
xor esi, esi
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 8], edx
cmp ecx, 0xffffffff
jne 0x458c90
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x6c], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458c80
sub ecx, dword [ebp - 0x6c]
sar ecx, 1
test esi, esi
je 0x458d27
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x458cb2
push dword [ebp - 0xc4]
mov ecx, esi
push eax
call fcn.0047e5c0
jmp 0x458cf1
cmp edx, dword [0x4dc018]
jne 0x458cde
cmp ecx, 0x40
jb 0x458cde
push ecx
push edx
mov ecx, esi
call fcn.0047e5c0
mov dword [0x4dc018], 0
mov dword [0x4dc014], 0
jmp 0x458cf1
push 0
push ecx
push edx
mov ecx, esi
call fcn.0047de60
test eax, eax
je 0x45a6e8
cmp dword [ebp - 0x20], 0
jne 0x458f08
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
dec edx
add dword [ebp - 0x2c], 0x10
mov dword [edi + 8], 4
mov dword [edi], esi
mov dword [edi + 4], 0
mov dword [eax + edx*4], edi
mov edi, edx
inc edi
mov dword [ebp - 4], edx
mov dword [ebp - 4], edi
jmp 0x458ebe
cmp dword [ebp - 0xb4], 0
mov dword [edi + 8], 0
mov dword [edi + 4], ecx
je 0x458d71
cmp dword [ebp - 0x20], 0
je 0x458d4b
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x45a1f1
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edi
inc eax
mov dword [edi], edx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 4], edx
mov dword [eax + edx*4], edi
mov edi, edx
inc edi
mov dword [ebp - 4], edi
jmp 0x458ebe
test ecx, ecx
jne 0x458d92
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
mov dword [edi], 0x4b431c
mov dword [ebp - 4], edx
mov dword [eax + edx*4], edi
mov edi, edx
inc edi
mov dword [ebp - 4], edi
jmp 0x458ebe
cmp edx, dword [0x4dc018]
je 0x458da3
mov eax, dword [ebp - 0x20]
xor al, 1
je 0x458dc9
jmp 0x458de5
cmp dword [ebp - 0x20], 0
jne 0x458dc9
mov edx, dword [ebp - 0x2c]
add edx, 0x18
mov eax, dword [edx]
cmp eax, 0x45
je 0x458dc6
cmp eax, 0x44
je 0x458de2
mov eax, dword [edx + 0x10]
add edx, 0x10
cmp eax, 0x45
jne 0x458db6
mov edx, dword [ebp - 8]
mov dword [edi], edx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 4], edx
mov dword [eax + edx*4], edi
mov edi, edx
inc edi
mov dword [ebp - 4], edi
jmp 0x458ebe
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x18]
lea esi, [ecx + 1]
mov ecx, dword [ebp - 0x44]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
cmp esi, eax
ja 0x458e13
add esi, esi
push esi
push edx
push dword [ebp - 0x44]
call fcn.00497340
add esp, 0xc
mov dword [edi], eax
add dword [ebp - 0x44], esi
jmp 0x458dcb
cmp esi, 0x1001
jae 0x458e45
cmp dword [ebp - 0x54], 0x9c40
jae 0x458e45
lea eax, [esi + esi]
call fcn.004ac040
mov ecx, esp
lea eax, [esi + esi]
push eax
push dword [ebp - 8]
push ecx
call fcn.00497340
add esp, 0xc
mov dword [edi], eax
add dword [ebp - 0x54], esi
jmp 0x458dcb
lea eax, [esi + esi]
push eax
call fcn.00497ab4
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x45a488
lea ecx, [esi + esi]
push ecx
push dword [ebp - 8]
push eax
call fcn.00497340
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x38], eax
jmp 0x458dcb
cmp byte [ebp - 0x15], 0
je 0x45a20a
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
mov dword [edi + 8], 0
mov dword [edi], 0x4b431c
mov dword [edi + 4], 0
mov dword [eax + edx*4], edi
mov edi, edx
inc edi
mov dword [ebp - 4], edx
mov dword [ebp - 4], edi
jmp 0x458ebe
cmp ecx, 0x1f
jne 0x458f3f
mov dword [ebp - 0x2c], edx
mov edi, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov esi, edx
add esi, 0x18
add edx, 0x10
mov dword [ebp - 0x2c], edx
cmp dword [esi], 0x45
jne 0x458460
cmp edi, 1
jne 0x45a662
mov eax, dword [ebp - 0x30]
mov esi, dword [eax]
mov eax, dword [ebp - 0x4c]
mov al, byte [eax]
mov byte [ebp - 0x25], al
cmp al, 2
je 0x458f08
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x45a239
push esi
call fcn.0047d360
test eax, eax
je 0x45a6e8
mov esi, 0x4b431c
mov edi, dword [ebp - 0x38]
test edi, edi
je 0x45a718
mov esi, dword [ebp - 0x58]
nop dword [eax + eax]
mov eax, dword [esi + edi*4 - 4]
dec edi
cmp dword [eax + 8], 0
mov edx, dword [eax]
push edx
jne 0x45a6f7
call fcn.00497f48
add esp, 4
jmp 0x45a6fc
mov eax, dword [ebp - 4]
test eax, eax
je case.default.0x459395
mov edx, dword [ebp - 0x30]
dec eax
mov dword [ebp - 4], eax
mov esi, dword [edx + eax*4]
cmp dword [esi + 8], 8
jge case.default.0x459395
lea eax, [ecx - 0x12]
cmp eax, 0x2e
ja case.0x458f6d.20
movzx eax, byte [eax + 0x45a73c]
jmp dword [eax*4 + 0x45a72c]
xor eax, eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x60], eax
jmp 0x458f9d
lea edx, [ebp - 0x88]
mov ecx, esi
call fcn.0044f4f0
mov ecx, dword [edi + 8]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x40], eax
xor eax, eax
lea edx, [ecx - 9]
mov dword [ebp - 0x50], eax
cmp edx, 0x3a
ja case.0x458fb8.11
movzx eax, byte [edx + 0x45a78c]
jmp dword [eax*4 + 0x45a76c]
mov eax, dword [esi + 8]
cmp eax, 4
ja case.0x458fc7.3
jmp dword [eax*4 + 0x45a7c8]
mov eax, dword [esi]
or eax, dword [esi + 4]
jne case.0x458fc7.3
xor ecx, ecx
jmp 0x459007
mov ecx, dword [esi]
call fcn.0044f370
mov ecx, eax
jmp 0x459007
movsd xmm0, qword [esi]
ucomisd xmm0, qword [ebp - 0x68]
lahf
test ah, 0x44
jp case.0x458fc7.3
xor ecx, ecx
jmp 0x459007
mov ecx, dword [esi]
call fcn.0044f2e0
mov ecx, eax
jmp 0x459007
mov ecx, 1
mov edx, dword [edi + 8]
xor eax, eax
cmp edx, 0x21
sete al
cmp ecx, eax
jne case.0x458f6d.18
mov eax, dword [edi]
mov dword [ebp - 0x2c], eax
cmp edx, 0x20
je case.0x458f6d.18
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
jmp 0x45a177
mov eax, dword [esi + 8]
cmp eax, 4
ja case.0x459049.3
jmp dword [eax*4 + 0x45a7dc]
mov eax, dword [esi]
or eax, dword [esi + 4]
jne case.0x459049.3
xor ecx, ecx
test ecx, ecx
mov ecx, edi
sete al
push eax
call fcn.00401920
jmp 0x45a177
mov ecx, dword [esi]
call fcn.0044f370
mov ecx, eax
xor eax, eax
test ecx, ecx
mov ecx, edi
sete al
push eax
call fcn.00401920
jmp 0x45a177
movsd xmm0, qword [esi]
ucomisd xmm0, qword [ebp - 0x68]
lahf
test ah, 0x44
jp case.0x459049.3
xor ecx, ecx
xor eax, eax
test ecx, ecx
mov ecx, edi
sete al
push eax
call fcn.00401920
jmp 0x45a177
mov ecx, dword [esi]
call fcn.0044f2e0
mov ecx, eax
xor eax, eax
test ecx, ecx
mov ecx, edi
sete al
push eax
call fcn.00401920
jmp 0x45a177
xor eax, eax
mov ecx, 1
test ecx, ecx
mov ecx, edi
sete al
push eax
call fcn.00401920
jmp 0x45a177
mov eax, dword [ebp - 0x40]
cmp eax, 1
jne 0x459109
mov ecx, esi
call fcn.0044f5c0
mov ecx, dword [ebp - 0x40]
neg eax
mov dword [edi], eax
adc edx, 0
mov dword [edi + 8], ecx
neg edx
mov dword [edi + 4], edx
jmp 0x45a177
cmp eax, 2
jne 0x45a63e
mov eax, dword [esi + 8]
cmp eax, 4
ja case.0x45911e.3
jmp dword [eax*4 + 0x45a7f0]
movsd xmm0, qword [esi]
xorps xmm0, xmmword [ebp - 0xa0]
mov ecx, dword [ebp - 0x40]
movsd qword [edi], xmm0
mov dword [edi + 8], ecx
jmp 0x45a177
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004acb30
xorps xmm0, xmmword [ebp - 0xa0]
mov ecx, dword [ebp - 0x40]
movsd qword [edi], xmm0
mov dword [edi + 8], ecx
jmp 0x45a177
mov ecx, dword [esi]
call fcn.0042b840
xorps xmm0, xmmword [ebp - 0xa0]
mov ecx, dword [ebp - 0x40]
movsd qword [edi], xmm0
mov dword [edi + 8], ecx
jmp 0x45a177
push dword [esi]
call fcn.0049ec5f
mov ecx, dword [ebp - 0x40]
add esp, 4
fstp qword [ebp - 0x10]
movsd xmm0, qword [ebp - 0x10]
xorps xmm0, xmmword [ebp - 0xa0]
movsd qword [edi], xmm0
mov dword [edi + 8], ecx
jmp 0x45a177
movsd xmm0, qword [ebp - 0x68]
xorps xmm0, xmmword [ebp - 0xa0]
mov ecx, dword [ebp - 0x40]
movsd qword [edi], xmm0
mov dword [edi + 8], ecx
jmp 0x45a177
cmp dword [ebp - 0x40], 0
je 0x45a63e
mov edx, edi
mov ecx, esi
call fcn.0044f7c0
jmp 0x45a177
cmp dword [esi + 8], 4
jne case.default.0x459395
mov eax, dword [edi + 4]
test eax, eax
je 0x459232
cmp eax, 2
je 0x4591fd
mov eax, dword [esi]
mov dword [edi], eax
mov dword [edi + 4], 1
jmp 0x45a170
mov ecx, dword [esi]
cmp byte [ecx + 0x17], 0
jne 0x45920f
mov ecx, dword [ecx + 0xc]
call fcn.00414070
mov ecx, eax
mov al, byte [ecx + 0x16]
and al, 0x22
cmp al, 2
jne 0x459224
mov eax, dword [edi]
test eax, eax
je 0x459224
cmp dword [eax + 0x24], 0
jne 0x459232
mov dword [edi], ecx
mov dword [edi + 4], 1
jmp 0x45a170
mov ecx, dword [esi]
call fcn.0047d6a0
mov dword [edi + 8], 5
mov dword [edi], eax
test eax, eax
je 0x45a488
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x38], eax
jmp 0x45a177
cmp dword [esi + 8], 4
jne case.default.0x459395
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x45a63e
cmp ecx, 9
je 0x459283
cmp ecx, 0x42
je 0x459283
or eax, 0xffffffff
mov dword [ebp - 0x20], eax
jmp 0x45928a
mov dword [ebp - 0x20], 1
cmp edx, 1
jne 0x4592af
mov ecx, esi
call fcn.0044f5c0
mov dword [edi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], edx
mov ecx, dword [esi]
cdq
add eax, dword [edi]
adc edx, dword [edi + 4]
push edx
push eax
call fcn.0042b780
jmp 0x4592ce
mov ecx, dword [esi]
call fcn.0042b840
movd xmm1, dword [ebp - 0x20]
cvtdq2pd xmm1, xmm1
movsd qword [edi], xmm0
mov ecx, dword [esi]
addsd xmm1, xmm0
call fcn.0042b7a0
cmp dword [ebp - 0x1c], 0x42
jl 0x45932b
mov edx, dword [esi]
cmp byte [edx + 0x17], 0
jne 0x4592e6
mov ecx, dword [edx + 0xc]
call fcn.00414070
jmp 0x4592e8
mov eax, edx
cmp byte [eax + 0x17], 1
jne 0x4592f5
mov dword [edi], edx
jmp 0x45a169
mov ecx, dword [ebp - 0x40]
cmp ecx, 1
jne 0x45930e
mov eax, dword [ebp - 0x20]
cdq
add dword [edi], eax
mov dword [edi + 8], ecx
adc dword [edi + 4], edx
jmp 0x45a177
movd xmm1, dword [ebp - 0x20]
movsd xmm0, qword [edi]
cvtdq2pd xmm1, xmm1
mov dword [edi + 8], ecx
addsd xmm0, xmm1
movsd qword [edi], xmm0
jmp 0x45a177
mov eax, dword [ebp - 0x40]
mov dword [edi + 8], eax
jmp 0x45a177
cmp dword [ebp - 0x40], 1
jne 0x45a63e
mov ecx, esi
call fcn.0044f5c0
not eax
mov dword [edi + 8], 1
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x45a177
mov eax, dword [ebp - 4]
test eax, eax
je case.default.0x459395
mov edx, dword [ebp - 0x30]
dec eax
mov dword [ebp - 4], eax
mov edx, dword [edx + eax*4]
mov dword [ebp - 8], edx
mov eax, dword [edx + 8]
cmp eax, 8
jge case.default.0x459395
add ecx, 0xffffffed
cmp ecx, 0xb
ja 0x45945a
cmp eax, 4
jne case.default.0x459395
jmp dword [ecx*4 + 0x45a804]
mov ecx, dword [edx]
push esi
call fcn.0047d360
test eax, eax
je 0x45a6e8
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
cmp byte [edx + 0x17], 0
jne 0x4593c1
mov ecx, dword [edx + 0xc]
call fcn.00414070
jmp 0x4593c3
mov eax, edx
cmp byte [eax + 0x17], 1
je 0x4593de
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
jmp 0x45a177
mov eax, 4
mov dword [edi], edx
mov dword [edi + 4], 0
mov dword [edi + 8], eax
jmp 0x45a177
mov dword [edi + 8], 0x37
jmp 0x459455
mov dword [edi + 8], 0x38
jmp 0x459455
mov dword [edi + 8], 0x39
jmp 0x459455
mov dword [edi + 8], 0x3a
jmp 0x459455
mov eax, dword [edx]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x40], 0
je 0x459c09
mov ecx, dword [ebp - 8]
lea edx, [ebp - 0x8c]
call fcn.0044f4f0
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x459c06
mov edx, dword [edi + 8]
lea ecx, [edx - 0x26]
cmp ecx, 3
ja 0x45949c
cmp dword [ebp - 0x60], 0
jne 0x45949c
test eax, eax
je 0x459c06
cmp dword [ebp - 0x40], 1
jne 0x459835
cmp dword [ebp - 0x74], 1
jne 0x459835
cmp edx, 0x3a
je 0x459835
mov ecx, esi
call fcn.0044f5c0
mov ecx, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x14], edx
call fcn.0044f5c0
mov ecx, dword [edi + 8]
add ecx, 0xffffffda
mov dword [ebp - 8], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0x20], 1
cmp ecx, 0x15
ja case.0x4594f5.46
jmp dword [ecx*4 + 0x45a834]
add eax, esi
adc edx, dword [ebp - 0x14]
jmp 0x45a12d
sub eax, esi
sbb edx, dword [ebp - 0x14]
jmp 0x45a12d
mov ecx, dword [ebp - 0x14]
push ecx
push esi
push edx
push eax
call fcn.004abfc0
jmp 0x45a12d
cmp eax, esi
jne 0x459539
cmp edx, dword [ebp - 0x14]
jne 0x459539
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
cmp eax, esi
jne 0x45956e
cmp edx, dword [ebp - 0x14]
jne 0x45956e
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
cmp edx, dword [ebp - 0x14]
jl 0x459597
jg 0x459588
cmp eax, esi
jbe 0x459597
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
cmp edx, dword [ebp - 0x14]
jg 0x4595c7
jl 0x4595b8
cmp eax, esi
jae 0x4595c7
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
cmp edx, dword [ebp - 0x14]
jl 0x4595f7
jg 0x4595e8
cmp eax, esi
jb 0x4595f7
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
cmp edx, dword [ebp - 0x14]
jg 0x459627
jl 0x459618
cmp eax, esi
ja 0x459627
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
and eax, esi
and edx, dword [ebp - 0x14]
jmp 0x45a12d
or eax, esi
or edx, dword [ebp - 0x14]
jmp 0x45a12d
xor eax, esi
xor edx, dword [ebp - 0x14]
jmp 0x45a12d
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jl case.default.0x459395
jg case.default.0x459395
test esi, esi
jb case.default.0x459395
test ecx, ecx
jg case.default.0x459395
jl 0x459687
cmp esi, 0x3f
ja case.default.0x459395
cmp dword [edi + 8], 0x34
jne 0x4596ad
movq xmm1, qword [ebp - 0x100]
movd xmm0, esi
psllq xmm1, xmm0
movq qword [ebp - 0x10], xmm1
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
jmp 0x45a12d
mov ecx, esi
call fcn.004ac740
jmp 0x45a12d
mov ecx, dword [ebp - 0x14]
mov eax, esi
or eax, ecx
je 0x45a223
push ecx
push esi
push edx
push dword [ebp - 8]
call fcn.004ac5d0
jmp 0x45a12d
or eax, edx
mov ecx, dword [ebp - 0x14]
jne 0x4596f9
test ecx, ecx
jl 0x45a223
jg 0x4596ef
test esi, esi
jb 0x45a223
mov eax, esi
or eax, ecx
je case.default.0x459395
test ecx, ecx
jl 0x45979a
jg 0x45970b
test esi, esi
jb 0x45979a
mov eax, esi
or eax, ecx
mov eax, 1
jne 0x45971d
xor edx, edx
jmp 0x45a12d
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], 0
test ecx, ecx
jl 0x459788
jg 0x459732
cmp esi, 1
jbe 0x459788
mov edi, dword [ebp - 0x24]
mov eax, esi
mov dword [ebp - 0x14], ecx
and eax, 1
or eax, 0
je 0x459757
push edi
push dword [ebp - 8]
push dword [ebp - 0x1c]
push dword [ebp - 0x3c]
call fcn.004abfc0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 8]
push edi
push eax
push edi
push eax
call fcn.004abfc0
mov ecx, dword [ebp - 0x14]
mov edi, edx
shrd esi, ecx, 1
mov dword [ebp - 8], eax
shr ecx, 1
test ecx, ecx
ja 0x459735
jb 0x45977c
cmp esi, 1
ja 0x459735
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x24]
push edx
push dword [ebp - 8]
push dword [ebp - 0x1c]
push eax
call fcn.004abfc0
jmp 0x45a12d
mov dword [ebp - 0x20], 2
test edx, edx
jg 0x459805
jl 0x4597ad
cmp dword [ebp - 8], 0
jae 0x459805
mov edx, ecx
mov ecx, esi
call fcn.004acb30
mov ecx, dword [ebp - 8]
sub esp, 8
mov edx, dword [ebp - 0x24]
neg ecx
adc edx, 0
neg edx
movsd qword [esp], xmm0
call fcn.004acb30
sub esp, 8
movsd qword [esp], xmm0
call fcn.0042b2f0
fstp qword [ebp - 0x10]
movsd xmm0, qword [ebp - 0x10]
and esi, 1
or esi, 0
movsd qword [edi], xmm0
je case.0x4594f5.46
xorps xmm0, xmmword [ebp - 0xa0]
movsd qword [edi], xmm0
jmp case.0x4594f5.46
mov edx, ecx
mov ecx, esi
call fcn.004acb30
mov edx, dword [ebp - 0x24]
sub esp, 8
mov ecx, dword [ebp - 8]
movsd qword [esp], xmm0
call fcn.004acb30
sub esp, 8
movsd qword [esp], xmm0
call fcn.0042b2f0
fstp qword [edi]
jmp case.0x4594f5.46
mov eax, dword [esi + 8]
cmp eax, 4
ja case.0x459841.3
jmp dword [eax*4 + 0x45a88c]
movsd xmm0, qword [esi]
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x68]
jmp 0x4598df
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004acb30
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x68]
jmp 0x4598df
mov ecx, dword [esi]
call fcn.0042b840
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x68]
jmp 0x4598df
mov eax, dword [esi]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.00413c30
test al, al
je 0x4598b6
push 0x10
push 0
push dword [ebp - 0x1c]
call fcn.0049afc1
add esp, 0xc
mov ecx, eax
call fcn.004acb30
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x68]
jmp 0x4598df
push dword [ebp - 0x1c]
call fcn.0049ec5f
fstp qword [ebp - 0x10]
movsd xmm0, qword [ebp - 0x10]
add esp, 4
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x68]
jmp 0x4598df
movsd xmm0, qword [ebp - 0x68]
movsd qword [ebp - 0x10], xmm0
mov edx, dword [ebp - 8]
mov eax, dword [edx + 8]
cmp eax, 4
ja case.0x4598ea.3
jmp dword [eax*4 + 0x45a8a0]
movsd xmm1, qword [edx]
jmp 0x45990a
mov eax, dword [ebp - 8]
mov edx, dword [edx + 4]
mov ecx, dword [eax]
call fcn.004acb30
mov edx, dword [ebp - 8]
movaps xmm1, xmm0
mov ecx, dword [edi + 8]
lea eax, [ecx - 0x26]
cmp eax, 7
ja 0x459962
mov dword [ebp - 0x20], 1
jmp 0x459972
mov ecx, dword [edx]
call fcn.0042b840
jmp 0x459904
mov eax, dword [edx]
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.00413c30
test al, al
je 0x45994a
push 0x10
push 0
push dword [ebp - 0x1c]
call fcn.0049afc1
add esp, 0xc
mov ecx, eax
jmp 0x4598ff
push dword [ebp - 0x1c]
call fcn.0049ec5f
mov edx, dword [ebp - 8]
add esp, 4
fstp qword [ebp - 0x70]
movsd xmm1, qword [ebp - 0x70]
jmp 0x45990a
mov dword [ebp - 0x20], 2
cmp eax, 0x15
ja case.0x459979.8
movzx eax, byte [eax + 0x45a8e4]
jmp dword [eax*4 + 0x45a8b4]
addsd xmm1, qword [ebp - 0x10]
movsd qword [edi], xmm1
jmp case.0x4594f5.46
subsd xmm1, qword [ebp - 0x10]
movsd qword [edi], xmm1
jmp case.0x4594f5.46
mulsd xmm1, qword [ebp - 0x10]
movsd qword [edi], xmm1
jmp case.0x4594f5.46
movsd xmm0, qword [ebp - 0x10]
ucomisd xmm0, qword [ebp - 0x68]
lahf
test ah, 0x44
jnp 0x45a223
divsd xmm1, xmm0
movsd qword [edi], xmm1
jmp case.0x4594f5.46
ucomisd xmm1, qword [ebp - 0x10]
lahf
test ah, 0x44
jp 0x4599e5
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
ucomisd xmm1, qword [ebp - 0x10]
lahf
test ah, 0x44
jnp 0x459a15
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
comisd xmm1, xmmword [ebp - 0x10]
jbe 0x459a41
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
movsd xmm0, qword [ebp - 0x10]
comisd xmm0, xmm1
jbe 0x459a71
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
comisd xmm1, xmmword [ebp - 0x10]
jb 0x459a9d
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
movsd xmm0, qword [ebp - 0x10]
comisd xmm0, xmm1
jb 0x459acd
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
movsd xmm3, qword [ebp - 0x68]
movsd xmm2, qword [ebp - 0x10]
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jp 0x459b01
comisd xmm3, xmm2
ja 0x45a223
xor ecx, ecx
comisd xmm3, xmm1
seta cl
test ecx, ecx
je 0x459b3f
movsd xmm0, qword [ebp - 0x108]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm2
call fcn.0042b380
fstp qword [ebp - 0x70]
movsd xmm0, qword [ebp - 0x70]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jp case.default.0x459395
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jp 0x459b57
ucomisd xmm2, xmm3
lahf
test ah, 0x44
jnp case.default.0x459395
sub esp, 0x10
movsd qword [esp + 8], xmm2
test ecx, ecx
je 0x459bd0
xorps xmm1, xmmword [ebp - 0xa0]
movsd qword [esp], xmm1
call fcn.0042b2f0
movsd xmm0, qword [ebp - 0x110]
sub esp, 0x10
fstp qword [edi]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x10]
movsd qword [esp], xmm0
call fcn.0042b380
sub esp, 8
fstp qword [esp]
call fcn.0042b2e0
fstp qword [ebp - 0x10]
movsd xmm0, qword [ebp - 0x10]
ucomisd xmm0, qword [ebp - 0x108]
lahf
test ah, 0x44
jp case.0x4594f5.46
movsd xmm0, qword [edi]
xorps xmm0, xmmword [ebp - 0xa0]
movsd qword [edi], xmm0
jmp case.0x4594f5.46
movsd qword [esp], xmm1
call fcn.0042b2f0
fstp qword [edi]
jmp case.0x4594f5.46
cmp ecx, 0x36
jg case.0x4594f5.46
cmp ecx, 0x31
jl case.0x4594f5.46
cmp dword [ebp - 0x74], 1
mov eax, str.Integer
cmove edx, esi
mov esi, edx
jmp 0x45a643
mov edx, dword [ebp - 8]
mov eax, dword [edi + 8]
add eax, 0xffffffda
cmp eax, 3
ja 0x459cb4
mov eax, dword [esi + 8]
cmp eax, 5
jne 0x459c27
mov ecx, dword [esi]
mov dword [ebp - 0x24], ecx
jmp 0x459c50
cmp eax, 4
jne 0x459c49
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x459c3c
mov ecx, dword [eax + 0xc]
call fcn.00414070
test byte [eax + 0x15], 0x40
je 0x459c49
mov ecx, dword [eax]
mov dword [ebp - 0x24], ecx
jmp 0x459c50
mov dword [ebp - 0x24], 0
mov eax, dword [edx + 8]
cmp eax, 5
jne 0x459c5c
mov ecx, dword [edx]
jmp 0x459c7d
cmp eax, 4
jne 0x459c7b
mov eax, dword [edx]
cmp byte [eax + 0x17], 0
jne 0x459c71
mov ecx, dword [eax + 0xc]
call fcn.00414070
test byte [eax + 0x15], 0x40
je 0x459c7b
mov ecx, dword [eax]
jmp 0x459c7d
xor ecx, ecx
cmp dword [ebp - 0x24], 0
jne 0x459c87
test ecx, ecx
je 0x459cb4
mov eax, dword [edi + 8]
cmp eax, 0x28
je 0x459c9b
cmp eax, 0x29
je 0x459c9b
mov edx, 1
jmp 0x459c9d
xor edx, edx
xor eax, eax
cmp dword [ebp - 0x24], ecx
mov ecx, edi
setne al
xor eax, edx
push eax
call fcn.00401920
jmp 0x45a177
lea eax, [ebp - 0x48]
mov ecx, esi
push eax
lea edx, [ebp - 0x510]
call fcn.0044f650
mov ecx, dword [ebp - 8]
lea edx, [ebp - 0x310]
add esp, 4
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0044f650
mov ecx, dword [edi + 8]
add esp, 4
add ecx, 0xffffffdd
mov dword [ebp - 0x20], 1
mov edx, eax
mov dword [ebp - 0x3c], edx
cmp ecx, 0xc
ja case.0x459d02.36
movzx ecx, byte [ecx + 0x45a918]
jmp dword [ecx*4 + 0x45a8fc]
mov esi, dword [ebp - 0x14]
push esi
push edx
call fcn.004979b3
add esp, 8
test eax, eax
jne 0x459d29
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
mov esi, dword [ebp - 0x5c]
cmp esi, dword [ebp - 0x48]
jne 0x459d70
test esi, esi
je 0x459d61
mov ecx, dword [ebp - 0x14]
sub ecx, edx
mov ax, word [edx]
cmp ax, word [ecx + edx]
jne 0x459d70
add edx, 2
sub esi, 1
jne 0x459d50
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
mov esi, dword [ebp - 0x14]
push esi
push edx
call fcn.004979b3
add esp, 8
test eax, eax
je 0x459da6
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x45a130
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
mov esi, dword [ebp - 0x5c]
cmp esi, dword [ebp - 0x48]
jne 0x45956e
test esi, esi
je 0x459de6
mov ecx, dword [ebp - 0x14]
sub edx, ecx
mov ax, word [ecx + edx]
cmp ax, word [ecx]
jne 0x45956e
add ecx, 2
sub esi, 1
jne 0x459dd1
xorps xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [edi + 4], ecx
jmp 0x45a130
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
cmp eax, 5
jne 0x459e0b
mov eax, ecx
jmp 0x459e29
cmp eax, 4
jne 0x459e32
mov eax, dword [ecx]
cmp byte [eax + 0x17], 0
jne 0x459e23
mov ecx, dword [eax + 0xc]
call fcn.00414070
mov ecx, dword [ebp - 8]
test byte [eax + 0x15], 0x40
je 0x459e32
cmp dword [eax], 0
jne 0x45a22d
mov eax, dword [esi + 8]
cmp eax, 5
jne 0x459e3e
mov eax, esi
jmp 0x459e59
cmp eax, 4
jne 0x459e62
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x459e53
mov ecx, dword [eax + 0xc]
call fcn.00414070
test byte [eax + 0x15], 0x40
je 0x459e62
cmp dword [eax], 0
jne 0x45a1cb
mov edx, dword [ebp - 0x50]
test edx, edx
je 0x459ea1
cmp byte [edx + 0x17], 0
jne 0x459e79
mov ecx, dword [edx + 0xc]
call fcn.00414070
jmp 0x459e7b
mov eax, edx
cmp byte [eax + 0x17], 1
jne 0x459ea1
push dword [ebp - 0x48]
mov esi, dword [ebp - 0x14]
mov ecx, edx
push esi
call fcn.0047e500
test eax, eax
je 0x45a6e8
mov eax, dword [ebp - 0x50]
mov dword [edi], eax
jmp 0x45a169
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x48]
add eax, esi
mov dword [ebp - 0x24], eax
test edx, edx
jne 0x459ff1
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x2c]
test edx, edx
je 0x459ed9
test eax, eax
jne 0x459ed9
cmp dword [ecx + 0x18], 0x45
jne 0x459ed9
mov eax, edx
mov dword [ebp - 0x1c], 1
mov dword [ebp - 8], eax
jmp 0x459f31
cmp dword [ecx + 0x18], 0x13
jne 0x459ff1
test eax, eax
je 0x459ff1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + eax*4 - 4]
cmp dword [eax + 8], 4
jne 0x459ff1
mov eax, dword [eax]
mov dword [ebp - 8], eax
cmp byte [eax + 0x17], 0
jne 0x459f16
mov ecx, dword [eax + 0xc]
call fcn.00414070
mov ecx, eax
mov eax, dword [ebp - 8]
jmp 0x459f18
mov ecx, eax
cmp byte [ecx + 0x17], 1
jne 0x459ff1
mov dword [ebp - 0x1c], 0
test eax, eax
je 0x459ff1
push 0
mov ecx, eax
call fcn.00414010
xor ecx, ecx
cmp eax, 0x4dcd20
cmove eax, ecx
cmp eax, dword [ebp - 0x3c]
jne 0x459f82
mov ecx, dword [ebp - 8]
push esi
mov esi, dword [ebp - 0x14]
push esi
call fcn.0047e470
test eax, eax
je 0x459ff4
cmp dword [ebp - 0x1c], 0
jne 0x458f08
mov eax, dword [ebp - 4]
add dword [ebp - 0x2c], 0x10
dec eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], eax
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
mov dword [edi], eax
jmp 0x45a169
mov esi, dword [ebp - 0x14]
cmp eax, esi
je 0x459ff4
mov ecx, dword [ebp - 8]
push 0
push dword [ebp - 0x24]
push 0
call fcn.0047de60
test eax, eax
je 0x45a6e8
mov ecx, dword [ebp - 8]
push 1
call fcn.00414010
mov edx, eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc], edx
test eax, eax
je 0x459fc9
lea ecx, [eax + eax]
push ecx
push dword [ebp - 0x3c]
push edx
call fcn.00497340
mov edx, dword [ebp - 0xc]
add esp, 0xc
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x5c]
lea eax, [eax*2 + 2]
push eax
lea eax, [edx + ecx*2]
push esi
push eax
call fcn.00497340
mov ecx, dword [ebp - 8]
add esp, 0xc
call fcn.0042b8c0
jmp 0x459f5e
mov esi, dword [ebp - 0x14]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x44]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
mov ecx, dword [ebp - 0x24]
inc ecx
cmp ecx, eax
ja 0x45a01a
mov eax, dword [ebp - 0x44]
mov dword [edi], eax
lea eax, [eax + ecx*2]
mov dword [ebp - 0x44], eax
jmp 0x45a063
cmp ecx, 0x1001
jae 0x45a040
cmp dword [ebp - 0x54], 0x9c40
jae 0x45a040
lea eax, [ecx + ecx]
call fcn.004ac040
mov eax, esp
mov dword [edi], eax
mov eax, dword [ebp - 0x24]
inc eax
add dword [ebp - 0x54], eax
jmp 0x45a063
lea eax, [ecx + ecx]
push eax
call fcn.00497ab4
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x45a488
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x45a07a
add eax, eax
push eax
push dword [ebp - 0x3c]
push dword [edi]
call fcn.00497340
add esp, 0xc
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x5c]
lea eax, [eax*2 + 2]
push eax
mov eax, dword [edi]
push esi
lea eax, [eax + ecx*2]
push eax
call fcn.00497340
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov dword [edi + 4], eax
mov dword [ebp - 0x20], 0
jmp case.0x4594f5.46
mov eax, dword [esi + 8]
cmp eax, 5
jne 0x45a0b5
mov eax, dword [esi]
jmp 0x45a0d6
cmp eax, 4
jne 0x45a0d4
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x45a0ca
mov ecx, dword [eax + 0xc]
call fcn.00414070
test byte [eax + 0x15], 0x40
je 0x45a0d4
mov eax, dword [eax]
jmp 0x45a0d6
xor eax, eax
push 0
push 0x4dadb4
push 0x4dac48
push 0
push eax
call fcn.004acf9d
add esp, 0x14
test eax, eax
je 0x45a62b
lea ecx, [ebp - 0xc]
push ecx
push str.Prototype
mov ecx, eax
call fcn.00473f10
test eax, eax
je 0x45a62b
cmp dword [eax + 8], 5
jne 0x45a62b
mov edx, dword [eax]
test edx, edx
je 0x45a62b
mov ecx, dword [ebp - 8]
call fcn.004762f0
movzx eax, al
cdq
mov dword [edi + 4], edx
mov dword [edi], eax
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x20]
mov dword [edi + 8], eax
test esi, esi
je 0x45a177
push edi
mov ecx, esi
call fcn.0047d360
test eax, eax
je 0x45a6e8
cmp byte [esi + 0x17], 0
jne 0x45a15f
mov ecx, dword [esi + 0xc]
call fcn.00414070
jmp 0x45a161
mov eax, esi
cmp byte [eax + 0x17], 1
jne 0x45a177
mov dword [edi], esi
mov dword [edi + 4], 0
mov dword [edi + 8], 4
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
mov dword [eax + edx*4], edi
mov edi, edx
inc edi
mov dword [ebp - 4], edi
jmp 0x458ebe
mov eax, str.This_dynamically_built_variable_name_is_too_long.__If_this_variable_was_not_intended_to_be_dynamic__remove_the___symbols_from_it.
mov dword [ebp - 0x78], eax
jmp 0x45a667
mov ecx, dword [ebp - 0x80]
mov eax, str.This_dynamic_variable_is_blank.__If_this_variable_was_not_intended_to_be_dynamic__remove_the___symbols_from_it.
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx + 8]
jmp 0x45a667
mov edx, 0x4cefa4
jmp 0x45a679
mov eax, dword [ebx + 0xc]
xor esi, esi
mov dword [ebp - 0x34], esi
mov dword [eax], ecx
jmp 0x458f0d
mov eax, str.String
jmp 0x45a643
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x458f08
push eax
call fcn.00497f48
add esp, 4
jmp 0x458f08
mov esi, edx
mov dword [eax + 8], 0
mov dword [eax + 0x14], edx
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [ebp - 0x34], esi
jmp 0x458f0d
push dword [ebp - 0x50]
lea ecx, [ebp - 0xc8]
push dword [ebp - 8]
push dword [ebp - 0x14]
call fcn.004294b0
jmp 0x45a6cf
mov edx, str.Divide_by_zero.
jmp 0x45a679
mov eax, str.String
mov esi, ecx
jmp 0x45a643
cmp al, 8
je 0x45a5d2
cmp al, 0x10
je 0x45a5d2
cmp al, 0x11
je 0x45a5d2
mov edx, dword [ebx + 0x10]
test edx, edx
je case.0x45a268.3
mov ecx, dword [esi + 8]
cmp ecx, 5
ja case.0x45a268.3
jmp dword [ecx*4 + 0x45a928]
mov dword [edx + 8], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
cmp dword [esi + 8], 5
jne 0x458f08
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
jmp 0x458f08
mov edx, dword [esi]
mov dword [ebp - 0xc], edx
mov cl, byte [edx + 0x17]
test cl, cl
jne 0x45a2b1
mov ecx, dword [edx + 0xc]
call fcn.00414070
mov cl, byte [edx + 0x17]
mov edi, eax
mov al, byte [ebp - 0x25]
jmp 0x45a2b3
mov edi, edx
test byte [edi + 0x15], 0x70
je 0x45a2c6
mov esi, dword [ebx + 0x10]
mov ecx, edx
push esi
call fcn.00413dc0
jmp 0x45a27c
cmp al, 0x15
jne case.0x45a268.3
test cl, cl
jne 0x45a2e1
mov ecx, dword [edx + 0xc]
call fcn.00414070
mov cl, byte [edx + 0x17]
mov edi, eax
jmp 0x45a2e3
mov edi, edx
test byte [edi + 0x15], 0x72
jne 0x45a38b
test byte [edi + 0x16], 0x21
jne 0x45a38b
test cl, cl
je case.0x45a268.3
cmp byte [edx + 0x14], 2
jne 0x45a360
cmp dword [edx + 0x10], 0
je 0x45a360
cmp byte [edi + 0x17], 0
jne 0x45a31d
mov ecx, dword [edi + 0xc]
call fcn.00414070
mov esi, eax
jmp 0x45a31f
mov esi, edi
test byte [esi + 0x15], 1
je 0x45a32c
mov ecx, esi
call fcn.00413cd0
mov ecx, dword [esi + 0xc]
mov esi, dword [ebx + 0x10]
mov eax, dword [edi + 8]
mov dword [edi + 8], 0x4dcd20
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
shr ecx, 1
mov dword [esi + 8], 0
mov dword [esi + 0x14], eax
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x458f08
mov esi, dword [ebx + 0x10]
mov ecx, dword [esi + 0x10]
mov dword [esi], ecx
mov eax, dword [edx + 0xc]
add eax, 2
push eax
push dword [edx + 8]
push ecx
call fcn.00497340
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov ecx, dword [eax + 0xc]
shr ecx, 1
mov dword [esi + 4], ecx
jmp 0x458f08
mov esi, dword [ebx + 0x10]
mov ecx, edi
push esi
call fcn.00413dc0
jmp 0x45a27c
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je case.0x45a268.3
mov eax, dword [ebp - 0x58]
cmp dword [eax + ecx*4 - 4], esi
jne case.0x45a268.3
mov edi, dword [esi]
dec ecx
mov eax, dword [esi + 4]
mov esi, edi
mov dword [ebp - 0x34], edi
mov dword [edx + 8], 0
mov dword [edx + 0x14], esi
mov dword [edx], esi
mov dword [edx + 4], eax
mov dword [ebp - 0x38], ecx
jmp 0x458f0d
mov edi, dword [ebx + 0x14]
mov ecx, dword [esi + 8]
mov eax, ecx
mov edi, dword [edi]
mov dword [ebp - 0x34], edi
sub eax, 1
je 0x45a59d
sub eax, 1
je 0x45a581
sub eax, 3
je 0x45a1cb
mov edx, dword [esi]
mov dword [ebp - 0x1c], edx
cmp ecx, 4
jne 0x45a436
push 1
mov ecx, edx
call fcn.00414010
mov esi, dword [esi]
mov edx, eax
mov dword [ebp - 0x1c], edx
cmp byte [esi + 0x17], 0
jne 0x45a41f
mov ecx, dword [esi + 0xc]
call fcn.00414070
mov esi, eax
test byte [esi + 0x15], 1
je 0x45a42f
mov ecx, esi
call fcn.00413cd0
mov edx, dword [ebp - 0x1c]
mov eax, dword [esi + 0xc]
shr eax, 1
jmp 0x45a439
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x80]
lea edi, [eax + 1]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x84], edi
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx + 4]
mov eax, 0xff
cmp ecx, eax
cmovb ecx, eax
mov eax, dword [ebx + 0x24]
inc eax
add eax, ecx
cmp edi, eax
jbe 0x45a547
mov ecx, dword [ebx + 0x1c]
mov esi, dword [ecx]
sub esi, eax
add esi, edi
mov dword [ebp - 0x6c], esi
lea eax, [esi + esi]
push eax
call fcn.00497ab4
mov edi, eax
add esp, 4
test edi, edi
jne 0x45a492
mov edx, str.Out_of_memory.
jmp 0x45a679
cmp esi, 0x400000
jbe 0x45a4a0
inc dword [0x4dc010]
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebx + 0x14]
mov esi, dword [eax]
sub esi, ecx
sar esi, 1
je 0x45a4c1
lea eax, [esi + esi]
push eax
push ecx
push edi
call fcn.00497340
mov eax, dword [ebx + 0x14]
add esp, 0xc
lea ecx, [edi + esi*2]
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x34], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x1c]
push ecx
call fcn.00497340
mov esi, dword [ebx + 0x18]
add esp, 0xc
push dword [esi]
call fcn.00497f48
mov eax, dword [ebx + 0x1c]
add esp, 4
mov eax, dword [eax]
cmp eax, 0x400000
jbe 0x45a4ff
dec dword [0x4dc010]
mov edx, dword [esi]
xor ecx, ecx
lea eax, [edx + eax*2]
mov dword [ebp - 0xc], eax
cmp dword [ebx + 8], ecx
jle 0x45a530
mov esi, dword [ebx + 0x20]
mov eax, dword [esi + ecx*4]
cmp eax, edx
jb 0x45a527
cmp eax, dword [ebp - 0xc]
jae 0x45a527
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, dword [ebx + 8]
jl 0x45a511
mov esi, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebp - 0x6c]
mov dword [esi], edi
mov edi, dword [ebp - 0x84]
mov esi, dword [edx]
mov dword [ecx], eax
jmp 0x45a565
mov eax, dword [ebx + 0x14]
mov esi, dword [eax]
cmp esi, edx
je 0x45a563
lea eax, [edi + edi]
push eax
push edx
push esi
call fcn.00496c80
mov edx, dword [ebx + 0x14]
add esp, 0xc
jmp 0x45a565
mov edx, eax
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x45a574
mov eax, dword [ebp - 0x60]
mov dword [ecx], esi
mov dword [ecx + 4], eax
lea eax, [esi + edi*2]
mov dword [edx], eax
mov esi, dword [ebp - 0x34]
jmp 0x458f0d
movsd xmm2, qword [esi]
mov esi, edi
mov ecx, esi
call fcn.0047d1f0
mov ecx, dword [ebx + 0x14]
add eax, eax
add eax, 2
add dword [ecx], eax
jmp 0x458f0d
push 0xa
push edi
push dword [esi + 4]
push dword [esi]
call fcn.004998fd
add esp, 0x10
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45a5b0
mov ecx, dword [ebx + 0x14]
sub eax, edx
sar eax, 1
mov esi, edi
lea eax, [eax*2 + 2]
add dword [ecx], eax
jmp 0x458f0d
mov eax, dword [esi + 8]
cmp eax, 4
ja case.0x45a5da.3
jmp dword [eax*4 + 0x45a940]
mov eax, dword [esi]
or eax, dword [esi + 4]
jne case.0x45a5da.3
jmp 0x45a614
mov ecx, dword [esi]
call fcn.0044f370
jmp 0x45a614
movsd xmm0, qword [esi]
ucomisd xmm0, qword [ebp - 0x68]
lahf
test ah, 0x44
jp case.0x45a5da.3
xor eax, eax
jmp 0x45a614
mov ecx, dword [esi]
call fcn.0044f2e0
jmp 0x45a614
mov eax, 1
test eax, eax
mov esi, 0x4c6414
mov ecx, 0x4b431c
cmove esi, ecx
mov dword [ebp - 0x34], esi
jmp 0x458f0d
mov eax, str.Object
jmp 0x45a643
cmp dword [ebp - 0x74], 0
mov ecx, dword [ebp - 8]
cmovne ecx, esi
mov esi, ecx
mov eax, str.Number
push esi
push eax
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0xd8], 1
call fcn.00429570
mov eax, dword [ebp - 0xd8]
jmp 0x45a6cf
mov ecx, 0x4b431c
mov edx, dword [ebp - 0x78]
mov edi, 0x4b431c
mov dword [ebp - 0x34], edi
test ecx, ecx
jne 0x45a67e
mov dword [ebp - 0x34], edi
mov ecx, 0x4b431c
cmp byte [0x4dd434], 0
je 0x45a69a
push dword [ebp - 0x4c]
push 9
push ecx
push edx
mov ecx, 0x4dcd68
call fcn.00428b60
jmp 0x45a6cf
cmp byte [0x4dd437], 0
je 0x45a6be
mov eax, dword [ebp - 0x4c]
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push edx
mov ecx, 0x4dcd68
call fcn.00428a60
xor eax, eax
jmp 0x45a6cf
push dword [ebp - 0x4c]
push ecx
push 9
push edx
mov ecx, 0x4dcd68
call fcn.00428bd0
mov ecx, dword [ebx + 0xc]
mov dword [ecx], eax
test eax, eax
jne 0x45a579
xor esi, esi
mov dword [ebp - 0x34], esi
mov dword [ecx], esi
jmp 0x458f0d
mov ecx, dword [ebx + 0xc]
xor esi, esi
mov dword [ebp - 0x34], esi
mov dword [ecx], esi
jmp 0x458f0d
mov ecx, dword [edx]
call dword [ecx + 8]
test edi, edi
jne 0x458f20
mov eax, dword [ebp - 0x34]
lea esp, [ebp - 0x520]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x20
mov eax, esi
lea esp, [ebp - 0x520]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x20