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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a1478
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xfb4
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
push esi
xor esi, esi
cmp byte [eax], 2
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp + 0xc]
setne dl
push edi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], 0x4a4910
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x44], esi
dec edx
and edx, dword [0x4cb498]
shl ecx, 4
mov dword [ebp - 0x70], edx
mov edx, dword [eax + 8]
mov edi, dword [ecx + edx + 0xc]
lea eax, [ecx + edx + 0xc]
cmp dword [edi + 8], 0x44
mov dword [ebp - 0x20], edi
je 0x45c6b4
mov eax, 0x10
call fcn.0049bfd0
mov eax, dword [edi]
mov ebx, esp
mov dword [ebx], eax
mov ecx, dword [edi + 4]
mov dword [ebx + 4], ecx
mov edx, dword [edi + 8]
mov dword [ebx + 8], edx
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x48], ebx
cmp eax, 8
jge 0x45adf9
cmp eax, 7
jne 0x45c3f8
mov esi, dword [ebx + 4]
test esi, esi
je 0x45abee
mov ecx, dword [ebx]
xor edi, edi
mov dword [ebx], 0x4a4910
mov dword [ebx + 8], edi
mov eax, dword [ecx]
mov dword [ebp - 0x14], ecx
cmp eax, esi
jne 0x45a992
movzx edx, word [ecx + 0xa]
cmp word [esi + edx*2], di
jne 0x45a992
cmp byte [ecx + 0x14], 0
je 0x45a992
mov edx, dword [ecx + 4]
cmp byte [edx + 0x17], 0
jne 0x45a968
mov edx, dword [edx + 0xc]
test byte [edx + 0x15], 2
je 0x45a992
mov dword [ebx + 8], 6
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0x17], 0
jne 0x45a981
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx]
mov dword [ebx], eax
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
jmp 0x45c3f8
test eax, eax
je 0x45aab3
cmp esi, eax
mov eax, dword [ebp - 0x14]
jae 0x45a9bc
cmp edi, 0xfd
jae 0x45a9c4
mov cx, word [esi]
mov word [ebp + edi*2 - 0x29c], cx
add esi, 2
inc edi
cmp esi, dword [eax]
jb 0x45a9a1
cmp edi, 0xfd
jb 0x45a9cc
cmp esi, dword [eax]
jb 0x45ab3a
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
movzx eax, byte [eax + 0x17]
cmp eax, 3
ja case.default.0x45a9df
jmp dword [eax*4 + 0x45ca44]
mov eax, dword [ebp - 0x18]
call fcn.004011c0
cmp dword [0x4cb6c4], 0
jne 0x45aa32
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0xc], 0
jne 0x45aa32
push 0
lea eax, [ebp - 0x98]
mov ecx, edx
mov edx, dword [ecx + 0x18]
push eax
push edx
call dword [0x4a2178]
test eax, eax
je 0x45aa26
mov dword [0x4cda64], 0
dec eax
jmp 0x45aa75
mov eax, dword [ebp - 0x18]
mov dword [0x4cda64], eax
xor eax, eax
jmp 0x45aa75
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
shr eax, 1
jmp 0x45aa75
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0xc]
push 0
call fcn.0047aa80
jmp 0x45aa75
push 0
mov ecx, 0x4cc4fc
call fcn.00404540
cmp eax, 0xffffffff
jne 0x45aa75
xor eax, eax
jmp 0x45aa75
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x10]
push ecx
push 0
call edx
add esp, 8
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x45ab3a
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
lea edx, [ebp + edi*2 - 0x29c]
push edx
call fcn.0047aa80
add edi, eax
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 0xa]
add eax, 0xc
mov dword [ebp - 0x14], eax
mov eax, dword [eax]
lea esi, [esi + ecx*2]
test eax, eax
jne 0x45a99a
movzx eax, word [esi]
test ax, ax
je 0x45aadc
jmp 0x45aac0
cmp edi, 0xfd
jae 0x45aae4
add esi, 2
mov word [ebp + edi*2 - 0x29c], ax
movzx eax, word [esi]
inc edi
test ax, ax
jne 0x45aac0
cmp edi, 0xfd
jb 0x45aaea
cmp word [esi], 0
jne 0x45ab3a
mov eax, dword [ebp - 0x14]
test edi, edi
jne 0x45aaf7
cmp byte [eax + 8], 0
je 0x45ab3d
xor edx, edx
mov word [ebp + edi*2 - 0x29c], dx
cmp byte [eax + 8], dl
je 0x45ab8d
lea eax, [edi + edi + 2]
mov dword [ebx + 8], edx
call fcn.00497a70
mov esi, esp
lea eax, [ebp - 0x29c]
mov edx, esi
mov ecx, eax
sub edx, ecx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x45ab24
mov dword [ebx], esi
jmp 0x45c3f8
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x45ab4a
add eax, 0xc
cmp dword [eax], 0
jne 0x45ab42
cmp byte [eax + 8], 0
je 0x45c3f8
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je case.0x45c78b.3
mov eax, dword [ebp - 0x40]
test eax, eax
je case.0x45c78b.3
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.0047a6b0
test eax, eax
jne case.0x45c78b.3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
jmp case.0x45c78b.3
cmp word [ebp - 0x29c], dx
je 0x45c88f
lea edx, [ebp - 0x51]
push edx
push 3
lea eax, [ebp - 0x90]
push eax
push edi
lea ecx, [ebp - 0x29c]
push ecx
mov ecx, 0x4cc518
call fcn.00423d20
test eax, eax
jne 0x45abe9
mov eax, dword [ebp - 0x90]
xor edx, edx
cmp byte [ebp - 0x51], dl
lea ecx, [ebp - 0x29c]
setne dl
inc edx
push edx
push eax
push ecx
push 0x4cc518
mov ecx, edi
call fcn.00423fd0
test eax, eax
je 0x45c88f
mov edi, dword [ebp - 0x20]
mov dword [ebx], eax
mov esi, dword [ebx]
mov cl, byte [esi + 0x17]
mov eax, dword [0x4c7a54]
test cl, cl
jne 0x45ac02
mov edx, dword [esi + 0xc]
mov cl, byte [edx + 0x17]
movzx edx, cl
mov ecx, 1
sub edx, ecx
je 0x45ac81
sub edx, 3
jne 0x45acb7
cmp dword [edi + 0x18], 0x41
jne 0x45ac47
mov edx, dword [edi + 0x10]
mov edx, dword [edx + 4]
test edx, edx
je 0x45ac47
cmp dword [edx + 8], 0x44c810
jne 0x45ac47
add edi, 0x10
mov dword [ebp - 0x20], edi
mov dword [ebx], ecx
mov dword [ebx + 4], 0
mov dword [ebx + 8], ecx
jmp 0x45c3f8
mov edx, dword [esi + 0x10]
cmp edx, 0x447370
jne 0x45ac65
mov edx, dword [eax + 8]
mov dword [ebx], edx
mov eax, dword [eax + 0xc]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
jmp 0x45c3f8
cmp edx, 0x447c20
jne 0x45acb7
mov edx, dword [eax + 0x38]
mov dword [ebx], edx
mov dword [ebx + 4], 0
mov dword [ebx + 8], ecx
jmp 0x45c3f8
cmp dword [0x4cb6c4], 0
jne 0x45c11b
cmp byte [esi + 0x17], 0
jne 0x45ac99
mov eax, dword [esi + 0xc]
jmp 0x45ac9b
mov eax, esi
test byte [eax + 0x15], 0xa
jne 0x45c11b
xor ecx, ecx
cmp dword [eax + 0xc], ecx
setne cl
mov eax, ecx
test eax, eax
jne 0x45c11b
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x45acc0
jmp dword [eax*4 + 0x45ca54]
mov eax, esi
call fcn.004011c0
cmp dword [0x4cb6c4], 0
jne 0x45ad0b
cmp dword [esi + 0xc], 0
jne 0x45ad0b
mov eax, dword [esi + 0x18]
push 0
lea edx, [ebp - 0x94]
push edx
push eax
call dword [0x4a2178]
test eax, eax
je 0x45ad01
mov dword [0x4cda64], 0
dec eax
jmp 0x45ad41
mov dword [0x4cda64], esi
xor eax, eax
jmp 0x45ad41
mov eax, dword [esi + 0xc]
shr eax, 1
jmp 0x45ad41
mov ecx, dword [esi + 0xc]
push 0
call fcn.0047aa80
jmp 0x45ad41
push 0
mov ecx, 0x4cc4fc
call fcn.00404540
cmp eax, 0xffffffff
jne 0x45ad41
xor eax, eax
jmp 0x45ad41
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
push ecx
push 0
call edx
add esp, 8
lea esi, [eax + 1]
cmp esi, 1
jne 0x45ad6d
mov eax, dword [ebx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x45ad58
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
jne 0x45b524
mov dword [ebx + 8], 4
jmp 0x45c3f8
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [edx]
mov eax, dword [ebp + 0x20]
mov edx, dword [eax]
sar ecx, 1
sub edx, ecx
cmp esi, edx
ja 0x45ad8d
mov edi, dword [ebp - 0x4c]
lea eax, [edi + esi*2]
mov dword [ebp - 0x4c], eax
jmp 0x45addc
cmp esi, 0x1001
jae 0x45adad
cmp dword [ebp - 0x44], 0x9c40
jae 0x45adad
lea eax, [esi + esi]
call fcn.00497a70
add dword [ebp - 0x44], esi
mov edi, esp
jmp 0x45addc
mov edi, dword [ebp - 0x3c]
cmp edi, 0xc8
je 0x45c600
lea ecx, [esi + esi]
push ecx
call fcn.00490fe4
add esp, 4
mov dword [ebp + edi*4 - 0x5bc], eax
test eax, eax
je 0x45c600
inc dword [ebp - 0x3c]
mov edi, eax
mov ecx, dword [ebx]
push edi
call fcn.0047aa80
mov dword [ebx], edi
mov dword [ebx + 4], 0
mov dword [ebx + 8], 5
jmp 0x45c3f8
cmp eax, 0x41
jne 0x45b210
mov eax, dword [ebx]
mov edx, dword [eax + 4]
movzx eax, byte [eax + 9]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x28], eax
cmp eax, esi
jg 0x45ab54
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp - 0x1c], ecx
lea esi, [ebp + ecx*4 - 0xdbc]
test edx, edx
jne 0x45aebb
test ecx, ecx
je 0x45ab54
mov eax, ecx
dec eax
mov edi, dword [ebp + eax*4 - 0xdbc]
mov dword [ebp - 0x1c], eax
lea eax, [ebp + eax*4 - 0xdbc]
call fcn.00451980
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x45aea4
mov edi, dword [ebp - 0x28]
test edi, edi
je 0x45ae77
lea edx, [edi*4]
push edx
lea eax, [esi + 4]
push esi
push eax
call fcn.00491770
add esp, 0xc
inc dword [ebp - 0x64]
mov eax, 0x10
call fcn.0049bfd0
mov eax, esp
mov dword [esi], eax
mov dword [eax + 8], 0
mov ecx, dword [esi]
sub esi, 4
add edi, 2
mov dword [ecx], 0x4a4910
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x18], 0x4c8d98
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmp edx, dword [eax + 0x14]
jge 0x45aebb
mov ecx, dword [ebx]
cmp byte [ecx + 8], 2
jne 0x45ab54
mov edi, dword [ebx + 0xc]
xor eax, eax
lea edx, [ebp - 0x29c]
mov dword [ebx + 4], edx
mov dword [ebp - 0x30], edi
mov dword [ebx + 0xc], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 4], eax
mov eax, dword [ebx]
cmp byte [eax + 8], 2
mov eax, dword [ebp - 0x28]
sete cl
movzx edx, cl
push edx
mov edx, dword [ebp - 0x18]
push eax
push esi
mov esi, dword [ebp + 0x10]
push ebx
push esi
lea ecx, [ebp - 0x60]
push ecx
push edx
call fcn.0045cda0
test al, al
je 0x45c60b
mov ecx, dword [ebp + 8]
mov dword [0x4ccb4c], ecx
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x45b1e5
cmp eax, 2
je 0x45b1e5
cmp eax, 6
je 0x45b1e5
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x45af53
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x44
jne 0x45af53
cmp byte [ecx], 3
mov dword [ebp - 0x28], 1
je 0x45c63f
mov esi, dword [ebp - 0x70]
jmp 0x45af8c
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x13
mov dword [ebp - 0x28], 0
jne 0x45af8a
test eax, eax
je 0x45af8a
lea eax, [ebp + eax*4 - 0xdbc]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 4
jne 0x45af8a
mov esi, dword [eax]
mov al, byte [esi + 0x17]
test al, al
jne 0x45af86
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
je 0x45af8c
xor esi, esi
mov edi, dword [ebx]
test esi, esi
je 0x45b055
mov edx, dword [0x4c7a54]
mov eax, dword [ebp - 0x18]
cmp dword [edx + 0xb4], eax
jne 0x45afb6
mov dl, byte [esi + 0x16]
and dl, 0x22
cmp dl, 2
je 0x45b055
mov ecx, dword [ebx + 0xc]
cmp ecx, edi
jne 0x45afcc
mov eax, dword [ebx + 4]
push eax
mov edi, ecx
mov eax, esi
call fcn.0047adb0
jmp 0x45b01c
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45afd1
mov ecx, dword [ebx]
sub eax, edx
sar eax, 1
cmp ecx, dword [0x4cc47c]
jne 0x45b007
cmp eax, 0x40
jb 0x45b007
push eax
mov edi, ecx
mov eax, esi
call fcn.0047adb0
xor eax, eax
mov dword [0x4cc47c], eax
mov dword [0x4cc480], eax
jmp 0x45b01c
push 1
push 0
push 0xffffffffffffffff
push ecx
push esi
call fcn.0047a6b0
test eax, eax
je 0x45c676
cmp dword [ebp - 0x28], 0
jne 0x45c64f
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x1c]
dec dword [ebp - 0x1c]
add eax, 0x10
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x60]
mov dword [ebx + 0xc], ecx
mov dword [ebx], esi
mov dword [ebx + 8], 4
mov dword [ebp - 4], 0xffffffff
call fcn.0045d1e0
jmp 0x45c3f8
mov edx, dword [ebx + 0xc]
mov esi, 1
test edx, edx
je 0x45b080
mov eax, dword [ebp - 0x3c]
cmp eax, 0xc8
je 0x45c663
cmp edx, edi
jne 0x45b075
xor esi, esi
mov dword [ebp + eax*4 - 0x5bc], edx
inc eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebx]
mov dword [ebx + 0xc], edx
cmp word [eax], 0
jne 0x45b0b6
lea eax, [ebp - 0x60]
mov dword [ebx], 0x4a4910
mov dword [ebx + 8], 5
mov dword [ebx + 4], 0
mov dword [ebp - 4], 0xffffffff
call fcn.0045d1e0
jmp 0x45c3f8
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 0x3d], 0
je 0x45b0cf
test esi, esi
je 0x45b107
xor edx, edx
cmp dword [ebp - 0x28], edx
sete dl
mov esi, edx
jmp 0x45b107
cmp edi, dword [0x4cc47c]
jne 0x45b102
xor esi, esi
cmp dword [ebp - 0x28], esi
jne 0x45b107
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp eax, 0x44
je 0x45b107
lea esp, [esp]
cmp eax, 0x41
je 0x45b102
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x44
jne 0x45b0f0
jmp 0x45b107
mov esi, 1
mov eax, dword [ebx]
mov dword [ebx + 4], 0
mov dword [ebx + 8], 5
test esi, esi
je 0x45b1cf
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45b122
mov edi, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x1c]
sub eax, edx
mov edx, dword [ebp + 0x20]
sar eax, 1
lea esi, [eax + 1]
mov eax, edi
sub eax, dword [ecx]
mov ecx, dword [edx]
sar eax, 1
sub ecx, eax
cmp esi, ecx
ja 0x45b161
mov eax, dword [ebx]
add esi, esi
push esi
push eax
push edi
call fcn.00498b20
add esp, 0xc
add edi, esi
mov dword [ebp - 0x4c], edi
jmp 0x45b1cf
cmp esi, 0x1001
jae 0x45b191
cmp dword [ebp - 0x44], 0x9c40
jae 0x45b191
lea eax, [esi + esi]
call fcn.00497a70
mov ecx, dword [ebx]
mov eax, esp
lea edx, [esi + esi]
push edx
push ecx
push eax
call fcn.00498b20
add esp, 0xc
add dword [ebp - 0x44], esi
jmp 0x45b1cf
cmp dword [ebp - 0x3c], 0xc8
je 0x45c68a
lea eax, [esi + esi]
push eax
call fcn.00490fe4
mov ecx, dword [ebp - 0x3c]
add esp, 4
mov dword [ebp + ecx*4 - 0x5bc], eax
test eax, eax
je 0x45c68a
mov ecx, dword [ebx]
lea edx, [esi + esi]
push edx
push ecx
push eax
call fcn.00498b20
add esp, 0xc
inc dword [ebp - 0x3c]
mov dword [ebx], eax
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d1e0
jmp 0x45c3f8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x60]
mov dword [ebx + 0xc], edi
test eax, eax
je 0x45c3f8
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x5c]
push edx
push eax
call fcn.0047afd0
add esp, 0xc
jmp 0x45c3f8
cmp eax, 0x20
jne 0x45b253
cmp dword [ebx + 0xc], 0
je 0x45c5f8
test esi, esi
je 0x45c5f8
mov eax, dword [ebp + esi*4 - 0xdc0]
mov ecx, dword [eax]
dec esi
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov ecx, dword [eax + 8]
mov dword [ebx + 8], ecx
mov edx, dword [eax + 0xc]
mov dword [ebx + 0xc], edx
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x1c], esi
mov dword [ebx + 0xc], eax
jmp 0x45c402
test esi, esi
je 0x45ab54
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp + edx*4 - 0xdc0]
dec edx
cmp dword [edi + 8], 8
mov dword [ebp - 0x1c], edx
jge 0x45ab54
cmp eax, 0x21
jne 0x45b2ae
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x45ab54
mov ecx, dword [eax + 0xc]
mov dword [edi + 0xc], ecx
mov edx, dword [edi]
mov dword [ebx], edx
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [edi + 8]
mov dword [ebx + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [ebx + 0xc], edx
mov dword [edi + 8], 1
jmp 0x45c3f8
add eax, 0xffffffee
cmp eax, 0x2a
ja case.0x45b2bd.20
movzx eax, byte [eax + 0x45ca6c]
jmp dword [eax*4 + 0x45ca64]
push edi
call fcn.00451540
mov edx, dword [ebp - 0x1c]
mov esi, eax
add esp, 4
mov dword [ebp - 0x78], esi
jmp 0x45b2da
mov esi, dword [ebp - 0x78]
mov eax, dword [ebx + 8]
lea ecx, [eax - 9]
mov dword [ebp - 0x50], 0
cmp ecx, 0x37
ja case.0x45b2f7.11
movzx ecx, byte [ecx + 0x45cab4]
jmp dword [ecx*4 + 0x45ca98]
mov eax, esi
mov esi, edi
call fcn.00451470
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 1
jmp 0x45c3f8
mov eax, esi
mov esi, edi
call fcn.00451470
test eax, eax
jne 0x45bd11
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
jmp 0x45c3f8
cmp esi, 1
jne 0x45b362
push esi
mov ecx, edi
call fcn.00451690
add esp, 4
neg eax
adc edx, 0
neg edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
jmp 0x45c3f8
cmp esi, 2
jne 0x45b524
push 1
push 0
mov eax, edi
call fcn.00451720
fchs
fstp qword [ebx]
add esp, 8
mov dword [ebx + 8], esi
jmp 0x45c3f8
mov ecx, dword [edi + 8]
xor edx, edx
cmp eax, 0x3f
setge dl
mov dword [ebp - 0x30], edx
cmp ecx, 4
jne 0x45b524
test esi, esi
je 0x45b450
cmp eax, 9
je 0x45b3b5
mov dword [ebp - 0x38], 0xffffffff
cmp eax, 0x3f
jne 0x45b3bc
mov dword [ebp - 0x38], 1
push 1
cmp esi, 1
jne 0x45b3e7
mov ecx, edi
call fcn.00451690
mov dword [ebx], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 4], edx
cdq
add esp, 4
add eax, dword [ebx]
adc edx, dword [ebx + 4]
push edx
push eax
mov eax, dword [edi]
push eax
call fcn.00415550
jmp 0x45b400
push 0
mov eax, edi
call fcn.00451720
fst qword [ebx]
fiadd dword [ebp - 0x38]
mov ecx, dword [edi]
fstp qword [esp]
push ecx
call fcn.00415580
cmp dword [ebp - 0x30], 0
je 0x45b37d
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x45b419
mov edx, dword [edi + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
jne 0x45b42b
mov dword [ebx], edi
mov dword [ebx + 8], 4
jmp 0x45c3f8
cmp esi, 1
jne 0x45b441
mov eax, dword [ebp - 0x38]
cdq
add dword [ebx], eax
mov dword [ebx + 8], esi
adc dword [ebx + 4], edx
jmp 0x45c3f8
fild dword [ebp - 0x38]
mov dword [ebx + 8], esi
fadd qword [ebx]
fstp qword [ebx]
jmp 0x45c3f8
cmp ecx, 4
jne 0x45b524
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x45b466
mov ecx, dword [eax + 0xc]
jmp 0x45b468
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x45b473
call fcn.00431310
mov ecx, dword [edi]
call fcn.004154f0
cmp dword [ebp - 0x30], 0
je 0x45b524
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x45b493
mov eax, dword [edi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x45b524
mov dword [ebx], edi
mov dword [ebx + 8], 4
jmp 0x45c3f8
mov eax, dword [edi + 8]
cmp eax, 4
jne 0x45b507
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x45b4be
mov ecx, dword [eax + 0xc]
jmp 0x45b4c0
mov ecx, eax
test byte [ecx + 0x15], 2
je 0x45b4e5
mov dword [ebx + 8], 1
mov edi, dword [edi]
cmp byte [edi + 0x17], 0
jne 0x45b4d8
mov edi, dword [edi + 0xc]
mov eax, dword [edi]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3f8
call fcn.004155b0
push 0
mov dword [ebx + 8], 1
mov ecx, dword [edi]
push 1
call fcn.00401280
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3f8
cmp eax, 6
jne 0x45b524
mov dword [ebx + 8], 1
mov eax, dword [edi]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3f8
test esi, esi
jne 0x45b536
mov dword [ebx], 0x4a4910
mov dword [ebx + 8], 0
jmp 0x45c3f8
xor ecx, ecx
cmp esi, 1
sete cl
push ecx
mov ecx, edi
call fcn.00451690
add esp, 4
cmp dword [ebx + 8], 0x3b
jne 0x45b586
test edx, edx
ja 0x45b571
jb 0x45b55a
cmp eax, 0xffffffff
ja 0x45b571
not eax
mov dword [ebx + 4], 0
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c3f8
not eax
not edx
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c3f8
cmp eax, 0x1000
jae 0x45b5a1
xor eax, eax
cdq
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c3f8
movzx eax, byte [eax]
cdq
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c3f8
test edx, edx
je 0x45ab54
dec edx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp + edx*4 - 0xdbc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x18], edx
cmp ecx, 8
jge 0x45ab54
cmp eax, 0x12
jne 0x45b615
mov eax, dword [edx]
mov dword [ebx], eax
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
mov ecx, dword [edx + 0xc]
mov edx, dword [ebp - 0x20]
mov dword [ebx + 0xc], ecx
cmp dword [ebx + 8], 6
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xc], eax
jne 0x45c3f8
mov eax, dword [ebx]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
jmp 0x45c3f8
cmp eax, 0x1f
jg 0x45b71e
cmp eax, 0x13
jl 0x45b71e
cmp ecx, 4
je 0x45b63e
mov dword [ebx], 0x4a4910
mov dword [ebx + 8], 0
jmp 0x45c3f8
add eax, 0xffffffed
cmp eax, 0xc
ja case.default.0x45b64a
jmp dword [eax*4 + 0x45caec]
mov esi, dword [ebp - 0x18]
mov ebx, dword [esi]
mov eax, edi
call fcn.00479fd0
test eax, eax
je 0x45c88f
mov ecx, dword [esi]
mov al, byte [ecx + 0x17]
test al, al
jne 0x45b674
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
mov ebx, dword [ebp - 0x48]
cmp al, 2
mov eax, ebx
jne 0x45b6a1
mov ecx, dword [edi]
mov dword [eax], ecx
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
mov edx, dword [edi + 0xc]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
jmp 0x45c3f8
mov dword [eax], ecx
mov dword [eax + 8], 4
jmp 0x45c3f8
mov dword [ebx + 8], 0x34
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x35
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x36
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x37
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x38
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x2e
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x2f
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x30
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x31
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x32
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x33
jmp case.default.0x45b64a
mov dword [ebx + 8], 0x2d
mov eax, dword [edx]
mov dword [ebp - 0x50], eax
cmp dword [ebx + 8], 0x2d
je 0x45bcb8
test esi, esi
je 0x45bcb8
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00451540
add esp, 4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x45bcb8
cmp esi, 1
jne 0x45b756
cmp eax, esi
jne 0x45b756
cmp dword [ebx + 8], 0x37
jne 0x45b76b
mov eax, dword [ebx + 8]
cmp eax, 0x33
jg 0x45ba61
cmp eax, 0x2e
jl 0x45ba61
xor edx, edx
cmp esi, 1
sete dl
mov ecx, edi
push edx
call fcn.00451690
mov ecx, dword [ebp - 0x18]
mov edi, eax
xor eax, eax
add esp, 4
cmp dword [ebp - 0x68], 1
mov esi, edx
sete al
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], esi
push eax
call fcn.00451690
mov ecx, dword [ebx + 8]
add ecx, 0xffffffdb
add esp, 4
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x24], 1
cmp ecx, 0x19
ja case.0x45b7c2.45
jmp dword [ecx*4 + 0x45cb20]
add eax, edi
adc edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
sub eax, edi
sbb edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
push esi
push edi
push edx
push eax
call fcn.00497120
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
cmp eax, edi
jne 0x45b829
cmp edx, esi
jne 0x45b829
mov edx, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
mov edx, dword [ebp - 0x24]
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
cmp eax, edi
jne 0x45b845
cmp edx, esi
je 0x45b829
mov edx, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
cmp edx, esi
jl 0x45b829
jg 0x45b866
cmp eax, edi
jbe 0x45b829
mov edx, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
cmp edx, esi
jg 0x45b829
jl 0x45b887
cmp eax, edi
jae 0x45b829
mov edx, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
cmp edx, esi
jl 0x45b829
jg 0x45b8a8
cmp eax, edi
jb 0x45b829
mov edx, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
cmp edx, esi
jg 0x45b829
jl 0x45b8d1
cmp eax, edi
ja 0x45b829
mov edx, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
and eax, edi
and edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
or eax, edi
or edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
xor eax, edi
xor edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
mov ecx, edi
call fcn.004a0040
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
mov ecx, edi
call fcn.004a0010
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
mov ecx, edi
call fcn.0049d6e0
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
mov ecx, edi
or ecx, dword [ebp - 0x80]
jne 0x45b983
mov edx, ecx
mov dword [ebx], 0x4a4910
mov dword [ebp - 0x24], ecx
mov dword [ebx + 8], edx
jmp 0x45c3c0
mov ecx, dword [ebp - 0x80]
push ecx
push edi
push edx
push eax
call fcn.0049f600
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c3c0
mov ecx, eax
or ecx, edx
jne 0x45b9c7
test esi, esi
jg 0x45ba23
jl 0x45b9af
test edi, edi
jae 0x45ba23
mov dword [ebp - 0x24], 0
mov edx, dword [ebp - 0x24]
mov dword [ebx], 0x4a4910
mov dword [ebx + 8], edx
jmp 0x45c3c0
test edx, edx
jg 0x45ba23
jl 0x45b9d1
test eax, eax
jae 0x45ba23
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
fild qword [ebp - 0x84]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x8c]
fstp qword [esp]
call fcn.00432220
cmp dword [ebp - 0x30], 0
fst qword [ebx]
je 0x45ba2c
push 0
push 2
push esi
push edi
call fcn.004a0060
or eax, edx
je 0x45ba2c
fchs
fstp qword [ebx]
jmp 0x45ba2e
mov dword [ebp - 0x30], 0
jmp 0x45b9eb
fstp st(0)
test esi, esi
jg 0x45ba4a
jl 0x45ba38
test edi, edi
jae 0x45ba4a
mov dword [ebp - 0x24], 2
mov edx, dword [ebp - 0x24]
mov dword [ebx + 8], edx
jmp 0x45c3c0
fld qword [ebx]
call fcn.0049f586
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov edx, dword [ebp - 0x24]
mov dword [ebx + 8], edx
jmp 0x45c3c0
xor eax, eax
cmp esi, 2
sete al
push eax
push 1
mov eax, edi
call fcn.00451720
fstp qword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp dword [ebp - 0x68], 2
sete cl
push ecx
push 1
call fcn.00451720
fst qword [ebp - 0x6c]
mov ecx, dword [ebx + 8]
add esp, 0x10
cmp ecx, 0x25
jl 0x45baa2
mov edi, 1
cmp ecx, 0x2c
jle 0x45baa7
mov edi, 2
lea eax, [ecx - 0x25]
cmp eax, 0x19
ja case.0x45bab6.45
movzx edx, byte [eax + 0x45cbb8]
jmp dword [edx*4 + 0x45cb88]
fadd qword [ebp - 0x34]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45c3c0
fsub qword [ebp - 0x34]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45c3c0
fmul qword [ebp - 0x34]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45c3c0
fld qword [ebp - 0x34]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45bb08
fstp st(1)
mov dword [ebx], 0x4a4910
xor edi, edi
fstp st(0)
mov dword [ebx + 8], edi
jmp 0x45c3c0
fdivp st(1)
fst qword [ebx]
cmp ecx, 0x38
jne case.0x45bab6.45
sub esp, 8
fstp qword [esp]
call fcn.00432280
fstp qword [ebx]
mov dword [ebx + 8], edi
jmp 0x45c3c0
fld qword [ebp - 0x34]
fucompp
fnstsw ax
test ah, 0x44
jp 0x45bb46
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c3c0
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c3c0
fld qword [ebp - 0x34]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x45bb46
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c3c0
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jne 0x45bb46
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c3c0
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 5
jp 0x45bb46
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c3c0
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 1
jne 0x45bb46
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c3c0
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jp 0x45bb46
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c3c0
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45bc05
mov esi, 1
jmp 0x45bc07
xor esi, esi
fld st(1)
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x45bc30
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jne 0x45bc32
fstp st(0)
xor edi, edi
mov dword [ebx], 0x4a4910
mov dword [ebx + 8], edi
jmp 0x45c3c0
fstp st(0)
test esi, esi
je 0x45bc5c
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.004322b0
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45bc20
fld qword [ebp - 0x6c]
fchs
fld qword [ebp - 0x34]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.00432220
fstp qword [ebx]
test esi, esi
je 0x45bb00
fld qword [0x4c1f88]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.004322b0
sub esp, 8
fstp qword [esp]
call fcn.00432210
fld1
fucompp
fnstsw ax
test ah, 0x44
jp 0x45bb00
fld qword [ebx]
mov dword [ebx + 8], edi
fchs
fstp qword [ebx]
jmp 0x45c3c0
mov eax, dword [ebx + 8]
add eax, 0xffffffdb
cmp eax, 3
ja 0x45bd26
mov ecx, edi
call fcn.00451930
mov ecx, dword [ebp - 0x18]
mov esi, eax
call fcn.00451930
test esi, esi
jne 0x45bcdc
test eax, eax
je 0x45bd26
mov ecx, dword [ebx + 8]
cmp ecx, 0x27
je 0x45bcf0
cmp ecx, 0x28
je 0x45bcf0
mov ecx, 1
jmp 0x45bcf2
xor ecx, ecx
xor edx, edx
cmp esi, eax
sete dl
cmp ecx, edx
jne 0x45bd11
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
jmp 0x45c3f8
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], 1
jmp 0x45c3f8
lea ecx, [ebp - 0xfbc]
mov eax, edi
call fcn.004517d0
mov esi, eax
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x29c]
mov dword [ebp - 0x68], esi
call fcn.004517d0
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 8]
add eax, 0xffffffdb
mov dword [ebp - 0x24], 1
cmp eax, 8
ja case.default.0x45bd5f
jmp dword [eax*4 + 0x45cbd4]
mov eax, dword [0x4c7a54]
cmp byte [eax + 0xf2], 0
push esi
jne 0x45bd83
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00490f59
add esp, 8
jmp 0x45bd8d
mov edx, dword [ebp - 0x14]
push edx
call dword [0x4a22cc]
test eax, eax
jne 0x45bda2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c3ba
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c3ba
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bdd9
test cx, cx
je 0x45bdd5
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bdd9
add eax, 4
add esi, 4
test cx, cx
jne 0x45bdb3
xor eax, eax
jmp 0x45bdde
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45bda2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c3ba
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45be2e
test cx, cx
je 0x45be18
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45be2e
add eax, 4
add esi, 4
test cx, cx
jne 0x45bdf6
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3ba
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3ba
mov edx, dword [0x4c7a54]
mov al, byte [edx + 0xf2]
test al, al
jne 0x45be78
mov eax, dword [ebp - 0x14]
push esi
push eax
call fcn.00490f59
xor edx, edx
add esp, 8
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3ba
cmp al, 2
jne 0x45be9b
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call dword [0x4a22cc]
xor edx, edx
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3ba
mov eax, dword [ebp - 0x14]
mov edi, edi
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bed8
test cx, cx
je 0x45bec2
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bed8
add eax, 4
add esi, 4
test cx, cx
jne 0x45bea0
xor eax, eax
xor edx, edx
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3ba
sbb eax, eax
sbb eax, 0xffffffff
xor edx, edx
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c3ba
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45bf0f
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490f59
add esp, 8
jmp 0x45bf4e
cmp al, 2
jne 0x45bf20
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45bf4e
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bf49
test cx, cx
je 0x45bf45
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bf49
add eax, 4
add esi, 4
test cx, cx
jne 0x45bf23
xor eax, eax
jmp 0x45bf4e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jle 0x45bda2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c3ba
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45bf85
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490f59
add esp, 8
jmp 0x45bfcb
cmp al, 2
jne 0x45bf96
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45bfcb
mov eax, dword [ebp - 0x14]
lea esp, [esp]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bfc6
test cx, cx
je 0x45bfc2
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bfc6
add eax, 4
add esi, 4
test cx, cx
jne 0x45bfa0
xor eax, eax
jmp 0x45bfcb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jns 0x45bda2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c3ba
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45c002
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490f59
add esp, 8
jmp 0x45c041
cmp al, 2
jne 0x45c013
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45c041
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45c03c
test cx, cx
je 0x45c038
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45c03c
add eax, 4
add esi, 4
test cx, cx
jne 0x45c016
xor eax, eax
jmp 0x45c041
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, 0xffffffff
jle 0x45bda2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c3ba
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45c079
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490f59
add esp, 8
jmp 0x45c0bb
cmp al, 2
jne 0x45c08a
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45c0bb
mov eax, dword [ebp - 0x14]
lea ecx, [ecx]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45c0b6
test cx, cx
je 0x45c0b2
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45c0b6
add eax, 4
add esi, 4
test cx, cx
jne 0x45c090
xor eax, eax
jmp 0x45c0bb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, 1
jge 0x45bda2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c3ba
cmp dword [edi + 8], 4
jne 0x45c0e4
mov eax, dword [edi]
call fcn.004159b0
jmp 0x45c0ff
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45c0f0
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x50], 0
mov dword [ebp - 0x38], eax
je 0x45c127
push eax
mov eax, dword [ebp - 0x50]
push esi
call fcn.0047ad20
test eax, eax
je 0x45c127
mov ecx, dword [ebp - 0x50]
mov dword [ebx], ecx
mov dword [ebx + 8], 4
jmp 0x45c3f8
mov edx, dword [ebp - 0x18]
cmp dword [edx + 8], 4
jne 0x45c13b
mov eax, edx
mov eax, dword [eax]
call fcn.004159b0
jmp 0x45c150
mov eax, dword [ebp - 0x14]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45c141
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x50], 0
mov ecx, dword [ebp - 0x38]
lea edx, [eax + ecx + 1]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x74], edx
jne 0x45c2dd
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x45c186
cmp dword [ebp - 0x1c], 0
jne 0x45c186
mov esi, dword [ebp - 0x20]
cmp dword [esi + 0x18], 0x44
jne 0x45c189
mov dword [ebp - 0x30], 1
jmp 0x45c1d0
mov esi, dword [ebp - 0x20]
cmp dword [esi + 0x18], 0x13
jne 0x45c2dd
cmp dword [ebp - 0x1c], 0
je 0x45c2dd
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0xdc0]
cmp dword [eax + 8], 4
jne 0x45c2dd
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x45c1c0
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 1
jne 0x45c2dd
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x24], eax
test eax, eax
je 0x45c2dd
push 0
push 0
mov ecx, eax
call fcn.00401280
cmp eax, 0x4cc4d0
jne 0x45c1ef
xor eax, eax
cmp eax, dword [ebp - 0x14]
jne 0x45c240
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x68]
push edx
push eax
mov eax, dword [ebp - 0x24]
call fcn.0047ad20
test eax, eax
je 0x45c2dd
cmp dword [ebp - 0x30], 0
jne case.0x45c78b.3
mov ecx, dword [esi + 0x1c]
mov eax, dword [ebp - 0x1c]
add esi, 0x10
dec eax
mov dword [ebx + 0xc], ecx
mov edx, dword [ebp + eax*4 - 0xdbc]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx]
mov dword [ebp - 0x20], esi
mov dword [ebx], eax
mov dword [ebx + 8], 4
jmp 0x45c3f8
cmp eax, dword [ebp - 0x68]
je 0x45c2dd
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x24]
push 1
push 0
dec ecx
push ecx
push 0
push edx
call fcn.0047a6b0
test eax, eax
je 0x45c88f
mov ecx, dword [ebp - 0x24]
push 0
push 1
call fcn.00401280
cmp dword [ebp - 0x28], 0
mov edi, eax
je 0x45c28d
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax]
push ecx
push edx
push edi
call fcn.00498b20
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x68]
lea ecx, [eax + eax + 2]
mov eax, dword [ebp - 0x28]
push ecx
push edx
lea ecx, [edi + eax*2]
push ecx
call fcn.00498b20
mov edx, dword [ebp - 0x24]
add esp, 0xc
cmp byte [edx + 0x17], 0
mov eax, edx
jne 0x45c2b6
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x17], 2
jne 0x45c2d4
cmp dword [0x4cc508], 0
je 0x45c2d4
mov ecx, 0x4cc4fc
call fcn.00404810
jmp 0x45c20c
and byte [eax + 0x15], 0x86
jmp 0x45c20c
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp + 0x1c]
mov ecx, eax
sub ecx, dword [edx]
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
sar ecx, 1
sub edx, ecx
mov ecx, dword [ebp - 0x74]
cmp ecx, edx
ja 0x45c301
mov dword [ebx], eax
lea eax, [eax + ecx*2]
mov dword [ebp - 0x4c], eax
jmp 0x45c359
cmp ecx, 0x1001
jae 0x45c326
cmp dword [ebp - 0x44], 0x9c40
jae 0x45c326
mov esi, dword [ebp - 0x74]
lea eax, [esi + esi]
call fcn.00497a70
add dword [ebp - 0x44], esi
mov eax, esp
mov dword [ebx], eax
jmp 0x45c359
mov esi, dword [ebp - 0x3c]
cmp esi, 0xc8
je 0x45c87b
mov ecx, dword [ebp - 0x74]
lea edx, [ecx + ecx]
push edx
call fcn.00490fe4
add esp, 4
mov dword [ebp + esi*4 - 0x5bc], eax
mov dword [ebx], eax
test eax, eax
je 0x45c87b
inc esi
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x45c373
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx]
lea eax, [esi + esi]
push eax
push ecx
push edx
call fcn.00498b20
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x68]
lea ecx, [eax + eax + 2]
mov eax, dword [ebx]
push ecx
push edx
lea ecx, [eax + esi*2]
push ecx
call fcn.00498b20
mov edx, dword [ebp - 0x18]
xor eax, eax
add esp, 0xc
cmp dword [edx + 8], eax
je 0x45c3a8
cmp dword [edi + 8], eax
je 0x45c3a8
mov dword [ebp - 0x24], 5
mov dword [ebx + 4], eax
jmp 0x45c3ba
mov dword [ebp - 0x24], eax
jmp 0x45c3ba
mov dword [ebx], 0x4a4910
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x24]
mov dword [ebx + 8], eax
cmp dword [ebp - 0x50], 0
je 0x45c3f8
mov eax, ebx
mov ebx, dword [ebp - 0x50]
call fcn.00479fd0
test eax, eax
je 0x45c88f
mov al, byte [ebx + 0x17]
test al, al
jne 0x45c3e5
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 2
je 0x45c3f5
mov eax, dword [ebp - 0x48]
mov dword [eax], ebx
mov dword [eax + 8], 4
mov ebx, dword [ebp - 0x48]
cmp dword [ebx + 0xc], 0
je 0x45c5a9
push ebx
call fcn.00451540
add esp, 4
dec eax
je 0x45c4f0
dec eax
mov eax, dword [ebx + 8]
je 0x45c450
cmp eax, 6
je 0x45c59f
cmp eax, 4
jne 0x45c43b
mov eax, dword [ebx]
cmp byte [eax + 0x17], 0
jne 0x45c431
mov eax, dword [eax + 0xc]
test byte [eax + 0x15], 2
jne 0x45c59f
xor ecx, ecx
mov eax, ebx
call fcn.004517d0
xor edx, edx
cmp word [eax], dx
setne dl
mov esi, edx
jmp 0x45c497
dec eax
cmp eax, 5
ja case.0x45c456.3
jmp dword [eax*4 + 0x45cbf8]
fild qword [ebx]
jmp 0x45c486
fld qword [ebx]
jmp 0x45c486
mov eax, dword [ebx]
push 1
call fcn.00415710
jmp 0x45c486
mov eax, dword [ebx + 4]
test eax, eax
je case.0x45c456.3
fild qword [eax]
jmp 0x45c486
mov eax, dword [ebx]
push eax
call fcn.00492aa2
add esp, 4
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45c59f
xor esi, esi
cmp dword [ebx + 8], 6
jne 0x45c4a7
mov eax, dword [ebx]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 8], 0x21
je 0x45c5eb
mov edi, 0x21
xor edx, edx
cmp dword [ecx + 8], 0x22
sete dl
cmp esi, edx
jne 0x45c5f2
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x45c4d9
cmp dword [ecx + 8], edi
jne 0x45c4b9
mov eax, esi
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], ecx
jmp 0x45c3f8
mov eax, dword [ebx + 8]
dec eax
cmp eax, 5
ja case.0x45c4f9.3
jmp dword [eax*4 + 0x45cc10]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x45c597
mov ecx, dword [ebx + 4]
test ecx, ecx
je case.0x45c4f9.3
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x45c597
fld qword [ebx]
call fcn.0049f586
jmp 0x45c597
mov eax, dword [ebx]
push 1
call fcn.00415690
jmp 0x45c597
mov esi, dword [ebx]
mov eax, esi
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x45c540
cmp ecx, 9
jne 0x45c545
add eax, 2
jmp 0x45c533
movzx ecx, word [eax]
test cx, cx
je 0x45c58e
cmp ecx, 0x2d
je 0x45c557
cmp ecx, 0x2b
jne 0x45c55a
add eax, 2
cmp word [eax], 0x30
jne 0x45c58e
movzx ecx, word [eax + 2]
cmp ecx, 0x78
je 0x45c56e
cmp ecx, 0x58
jne 0x45c58e
movzx ecx, word [eax + 4]
push ecx
call fcn.0049225d
add esp, 4
test eax, eax
je 0x45c58e
push 0x10
push 0
push esi
call fcn.004929c3
add esp, 0xc
jmp 0x45c597
push esi
call fcn.00491fa1
add esp, 4
or eax, edx
je case.0x45c4f9.6
mov esi, 1
jmp 0x45c497
mov esi, dword [ebp - 0x64]
mov edi, dword [ebp - 0x1c]
cmp esi, edi
jle 0x45c5cf
mov eax, dword [ebp + esi*4 - 0xdc0]
dec esi
cmp dword [eax + 8], 6
jne 0x45c5cb
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp esi, edi
jg 0x45c5b3
mov dword [ebp + edi*4 - 0xdbc], ebx
inc edi
mov dword [ebp - 0x1c], edi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x64], edi
mov edi, dword [ebp - 0x20]
add edi, 0x10
jmp 0x45a8e4
test esi, esi
jne 0x45c5f2
mov dword [ebp - 0x20], ecx
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
add edi, 0x10
jmp 0x45a8e4
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x18]
push edx
jmp 0x45c880
cmp dword [esi], 1
je 0x45c617
mov dword [ebp - 0x40], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x60]
test eax, eax
je case.0x45c78b.3
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x5c]
push edx
push eax
call fcn.0047afd0
add esp, 0xc
jmp case.0x45c78b.3
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x45c64f
push ebx
call fcn.004915f6
add esp, 4
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d1e0
jmp case.0x45c78b.3
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
push edx
push 0
push str.Out_of_memory.
call fcn.004309e0
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d1e0
jmp 0x45c88f
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.
call fcn.004309e0
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d1e0
jmp 0x45c88f
mov edx, dword [ebp + 8]
mov cl, byte [edx]
cmp cl, 3
je case.0x45c78b.3
cmp dword [ebp - 0x1c], 1
jne 0x45ab54
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0xdbc]
mov dword [ebp - 0x78], eax
test ebx, ebx
je 0x45c6ee
call fcn.00479fd0
test eax, eax
je 0x45c88f
jmp case.0x45c78b.3
cmp cl, 0x11
je 0x45c972
cmp cl, 0x6b
je 0x45c972
cmp cl, 0x6c
je 0x45c972
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x45c777
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x45c760
cmp ecx, 2
je 0x45c760
cmp ecx, 6
je 0x45c760
cmp ecx, 4
jne 0x45c777
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x45c732
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x45c777
mov dword [edx + 8], 6
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x45c74a
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [edx], eax
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, 0x4a4910
jmp 0x45c9df
mov dword [edx + 8], ecx
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, 0x4a4910
jmp 0x45c9df
mov esi, dword [ebp + 0x18]
mov ecx, dword [esi]
mov dword [ebp - 0x40], ecx
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x45c78b.3
jmp dword [ecx*4 + 0x45cc28]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [ebp - 0x40]
push edx
push eax
call fcn.004010b0
add esp, 8
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45c7a7
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 2]
add dword [esi], ecx
jmp case.0x45c78b.3
mov edx, dword [0x4c7a54]
fld qword [eax]
mov edi, dword [ebp - 0x40]
sub esp, 8
add edx, 0x74
fstp qword [esp]
push edx
mov esi, 0x100
call fcn.00477380
lea ecx, [eax + eax + 2]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add dword [eax], ecx
jmp case.0x45c78b.3
cmp ecx, 4
jne 0x45c812
mov ecx, dword [eax]
push 0
push 1
call fcn.00401280
mov edx, dword [ebp - 0x78]
mov edi, eax
mov dword [ebp + 0x14], eax
mov eax, dword [edx]
call fcn.004159b0
jmp 0x45c82f
mov edi, dword [eax]
mov eax, edi
mov dword [ebp + 0x14], edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45c820
sub eax, edx
sar eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea ebx, [eax + 1]
mov eax, dword [ebp + 0xc]
add eax, eax
movzx eax, word [edx + eax*8 + 2]
mov ecx, 0xff
cmp ax, cx
jae 0x45c84e
mov eax, ecx
mov edx, dword [ebp + 0x28]
lea eax, [eax + edx + 1]
cmp ebx, eax
jbe 0x45c957
mov ecx, dword [ebp + 0x20]
mov esi, dword [ecx]
sub esi, eax
add esi, ebx
lea edx, [esi + esi]
push edx
mov dword [ebp + 0x28], esi
call fcn.00490fe4
mov edi, eax
add esp, 4
test edi, edi
jne 0x45c8a4
push 0x4a4910
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.
call fcn.004309e0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov dword [eax], 0
jmp case.0x45c78b.3
cmp esi, 0x400000
jbe 0x45c8b2
inc dword [0x4cc484]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ecx]
mov esi, dword [edx]
sub esi, eax
sar esi, 1
je 0x45c8d0
lea ecx, [esi + esi]
push ecx
push eax
push edi
call fcn.00498b20
add esp, 0xc
mov edx, dword [ebp + 0x18]
lea eax, [edi + esi*2]
lea ecx, [ebx + ebx]
mov dword [edx], eax
mov edx, dword [ebp + 0x14]
push ecx
push edx
push eax
mov dword [ebp - 0x40], eax
call fcn.00498b20
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
add esp, 0xc
push ecx
call fcn.004915f6
mov edx, dword [ebp + 0x20]
mov eax, dword [edx]
add esp, 4
cmp eax, 0x400000
jbe 0x45c90c
dec dword [0x4cc484]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
xor ecx, ecx
lea eax, [edx + eax*2]
mov dword [ebp + 8], eax
cmp dword [ebp + 0xc], ecx
jle 0x45c940
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + ecx*4]
cmp eax, edx
jb 0x45c93a
cmp eax, dword [ebp + 8]
jae 0x45c93a
mov esi, dword [ebp + 0x24]
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, dword [ebp + 0xc]
jl 0x45c91e
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
mov dword [ecx], edi
mov dword [eax], edx
lea edx, [ebx + ebx]
add dword [esi], edx
jmp case.0x45c78b.3
mov eax, dword [esi]
cmp eax, edi
je 0x45c96b
lea ecx, [ebx + ebx]
push ecx
push edi
push eax
call fcn.00491770
add esp, 0xc
lea edx, [ebx + ebx]
add dword [esi], edx
jmp case.0x45c78b.3
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x45c97e.3
jmp dword [ecx*4 + 0x45cc44]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x45c97e.6
mov dword [ebp - 0x40], 0x4a4910
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x45c9b5
mov edi, edi
mov eax, dword [ebp + esi*4 - 0x5c0]
dec esi
push eax
call fcn.004915f6
add esp, 4
test esi, esi
jne 0x45c9a0
mov esi, dword [ebp - 0x64]
test esi, esi
je 0x45c9dc
lea esp, [esp]
mov eax, dword [ebp + esi*4 - 0xdc0]
dec esi
cmp dword [eax + 8], 6
jne 0x45c9d8
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
jne 0x45c9c0
mov eax, dword [ebp - 0x40]
lea esp, [ebp - 0xfcc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
fld qword [eax]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp case.0x45c97e.6
jmp case.0x45c78b.6
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x45c97e.0
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jmp 0x45c98a
mov eax, dword [eax]
call fcn.00451380
jmp 0x45ca2d
mov esi, dword [eax]
call fcn.004513e0
jmp 0x45ca2d
mov eax, dword [ebp + 8]
test eax, eax
je case.0x45c78b.6
mov dword [ebp - 0x40], 0x4a7314
jmp case.0x45c78b.3