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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a13b8
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], 0x4a48a0
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 0x45c5f4
mov eax, 0x10
call fcn.0049bf10
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 0x45ad39
cmp eax, 7
jne 0x45c338
mov esi, dword [ebx + 4]
test esi, esi
je 0x45ab2e
mov ecx, dword [ebx]
xor edi, edi
mov dword [ebx], 0x4a48a0
mov dword [ebx + 8], edi
mov eax, dword [ecx]
mov dword [ebp - 0x14], ecx
cmp eax, esi
jne 0x45a8d2
movzx edx, word [ecx + 0xa]
cmp word [esi + edx*2], di
jne 0x45a8d2
cmp byte [ecx + 0x14], 0
je 0x45a8d2
mov edx, dword [ecx + 4]
cmp byte [edx + 0x17], 0
jne 0x45a8a8
mov edx, dword [edx + 0xc]
test byte [edx + 0x15], 2
je 0x45a8d2
mov dword [ebx + 8], 6
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0x17], 0
jne 0x45a8c1
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 0x45c338
test eax, eax
je 0x45a9f3
cmp esi, eax
mov eax, dword [ebp - 0x14]
jae 0x45a8fc
cmp edi, 0xfd
jae 0x45a904
mov cx, word [esi]
mov word [ebp + edi*2 - 0x29c], cx
add esi, 2
inc edi
cmp esi, dword [eax]
jb 0x45a8e1
cmp edi, 0xfd
jb 0x45a90c
cmp esi, dword [eax]
jb 0x45aa7a
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
movzx eax, byte [eax + 0x17]
cmp eax, 3
ja case.default.0x45a91f
jmp dword [eax*4 + 0x45c984]
mov eax, dword [ebp - 0x18]
call fcn.004011c0
cmp dword [0x4cb6c4], 0
jne 0x45a972
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0xc], 0
jne 0x45a972
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 0x45a966
mov dword [0x4cda64], 0
dec eax
jmp 0x45a9b5
mov eax, dword [ebp - 0x18]
mov dword [0x4cda64], eax
xor eax, eax
jmp 0x45a9b5
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
shr eax, 1
jmp 0x45a9b5
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0xc]
push 0
call fcn.0047a9c0
jmp 0x45a9b5
push 0
mov ecx, 0x4cc4fc
call fcn.00404510
cmp eax, 0xffffffff
jne 0x45a9b5
xor eax, eax
jmp 0x45a9b5
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 0x45aa7a
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
lea edx, [ebp + edi*2 - 0x29c]
push edx
call fcn.0047a9c0
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 0x45a8da
movzx eax, word [esi]
test ax, ax
je 0x45aa1c
jmp 0x45aa00
cmp edi, 0xfd
jae 0x45aa24
add esi, 2
mov word [ebp + edi*2 - 0x29c], ax
movzx eax, word [esi]
inc edi
test ax, ax
jne 0x45aa00
cmp edi, 0xfd
jb 0x45aa2a
cmp word [esi], 0
jne 0x45aa7a
mov eax, dword [ebp - 0x14]
test edi, edi
jne 0x45aa37
cmp byte [eax + 8], 0
je 0x45aa7d
xor edx, edx
mov word [ebp + edi*2 - 0x29c], dx
cmp byte [eax + 8], dl
je 0x45aacd
lea eax, [edi + edi + 2]
mov dword [ebx + 8], edx
call fcn.004979b0
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 0x45aa64
mov dword [ebx], esi
jmp 0x45c338
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x45aa8a
add eax, 0xc
cmp dword [eax], 0
jne 0x45aa82
cmp byte [eax + 8], 0
je 0x45c338
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je case.0x45c6cb.3
mov eax, dword [ebp - 0x40]
test eax, eax
je case.0x45c6cb.3
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.0047a5f0
test eax, eax
jne case.0x45c6cb.3
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
jmp case.0x45c6cb.3
cmp word [ebp - 0x29c], dx
je 0x45c7cf
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.00423c60
test eax, eax
jne 0x45ab29
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.00423f10
test eax, eax
je 0x45c7cf
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 0x45ab42
mov edx, dword [esi + 0xc]
mov cl, byte [edx + 0x17]
movzx edx, cl
mov ecx, 1
sub edx, ecx
je 0x45abc1
sub edx, 3
jne 0x45abf7
cmp dword [edi + 0x18], 0x41
jne 0x45ab87
mov edx, dword [edi + 0x10]
mov edx, dword [edx + 4]
test edx, edx
je 0x45ab87
cmp dword [edx + 8], 0x44c750
jne 0x45ab87
add edi, 0x10
mov dword [ebp - 0x20], edi
mov dword [ebx], ecx
mov dword [ebx + 4], 0
mov dword [ebx + 8], ecx
jmp 0x45c338
mov edx, dword [esi + 0x10]
cmp edx, 0x4472b0
jne 0x45aba5
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 0x45c338
cmp edx, 0x447b60
jne 0x45abf7
mov edx, dword [eax + 0x38]
mov dword [ebx], edx
mov dword [ebx + 4], 0
mov dword [ebx + 8], ecx
jmp 0x45c338
cmp dword [0x4cb6c4], 0
jne 0x45c05b
cmp byte [esi + 0x17], 0
jne 0x45abd9
mov eax, dword [esi + 0xc]
jmp 0x45abdb
mov eax, esi
test byte [eax + 0x15], 0xa
jne 0x45c05b
xor ecx, ecx
cmp dword [eax + 0xc], ecx
setne cl
mov eax, ecx
test eax, eax
jne 0x45c05b
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x45ac00
jmp dword [eax*4 + 0x45c994]
mov eax, esi
call fcn.004011c0
cmp dword [0x4cb6c4], 0
jne 0x45ac4b
cmp dword [esi + 0xc], 0
jne 0x45ac4b
mov eax, dword [esi + 0x18]
push 0
lea edx, [ebp - 0x94]
push edx
push eax
call dword [0x4a2178]
test eax, eax
je 0x45ac41
mov dword [0x4cda64], 0
dec eax
jmp 0x45ac81
mov dword [0x4cda64], esi
xor eax, eax
jmp 0x45ac81
mov eax, dword [esi + 0xc]
shr eax, 1
jmp 0x45ac81
mov ecx, dword [esi + 0xc]
push 0
call fcn.0047a9c0
jmp 0x45ac81
push 0
mov ecx, 0x4cc4fc
call fcn.00404510
cmp eax, 0xffffffff
jne 0x45ac81
xor eax, eax
jmp 0x45ac81
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 0x45acad
mov eax, dword [ebx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x45ac98
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
jne 0x45b464
mov dword [ebx + 8], 4
jmp 0x45c338
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 0x45accd
mov edi, dword [ebp - 0x4c]
lea eax, [edi + esi*2]
mov dword [ebp - 0x4c], eax
jmp 0x45ad1c
cmp esi, 0x1001
jae 0x45aced
cmp dword [ebp - 0x44], 0x9c40
jae 0x45aced
lea eax, [esi + esi]
call fcn.004979b0
add dword [ebp - 0x44], esi
mov edi, esp
jmp 0x45ad1c
mov edi, dword [ebp - 0x3c]
cmp edi, 0xc8
je 0x45c540
lea ecx, [esi + esi]
push ecx
call fcn.00490f24
add esp, 4
mov dword [ebp + edi*4 - 0x5bc], eax
test eax, eax
je 0x45c540
inc dword [ebp - 0x3c]
mov edi, eax
mov ecx, dword [ebx]
push edi
call fcn.0047a9c0
mov dword [ebx], edi
mov dword [ebx + 4], 0
mov dword [ebx + 8], 5
jmp 0x45c338
cmp eax, 0x41
jne 0x45b150
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 0x45aa94
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp - 0x1c], ecx
lea esi, [ebp + ecx*4 - 0xdbc]
test edx, edx
jne 0x45adfb
test ecx, ecx
je 0x45aa94
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.004518c0
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x45ade4
mov edi, dword [ebp - 0x28]
test edi, edi
je 0x45adb7
lea edx, [edi*4]
push edx
lea eax, [esi + 4]
push esi
push eax
call fcn.004916b0
add esp, 0xc
inc dword [ebp - 0x64]
mov eax, 0x10
call fcn.0049bf10
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], 0x4a48a0
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 0x45adfb
mov ecx, dword [ebx]
cmp byte [ecx + 8], 2
jne 0x45aa94
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.0045cce0
test al, al
je 0x45c54b
mov ecx, dword [ebp + 8]
mov dword [0x4ccb4c], ecx
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x45b125
cmp eax, 2
je 0x45b125
cmp eax, 6
je 0x45b125
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x45ae93
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x44
jne 0x45ae93
cmp byte [ecx], 3
mov dword [ebp - 0x28], 1
je 0x45c57f
mov esi, dword [ebp - 0x70]
jmp 0x45aecc
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x13
mov dword [ebp - 0x28], 0
jne 0x45aeca
test eax, eax
je 0x45aeca
lea eax, [ebp + eax*4 - 0xdbc]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 4
jne 0x45aeca
mov esi, dword [eax]
mov al, byte [esi + 0x17]
test al, al
jne 0x45aec6
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
je 0x45aecc
xor esi, esi
mov edi, dword [ebx]
test esi, esi
je 0x45af95
mov edx, dword [0x4c7a54]
mov eax, dword [ebp - 0x18]
cmp dword [edx + 0xb4], eax
jne 0x45aef6
mov dl, byte [esi + 0x16]
and dl, 0x22
cmp dl, 2
je 0x45af95
mov ecx, dword [ebx + 0xc]
cmp ecx, edi
jne 0x45af0c
mov eax, dword [ebx + 4]
push eax
mov edi, ecx
mov eax, esi
call fcn.0047acf0
jmp 0x45af5c
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45af11
mov ecx, dword [ebx]
sub eax, edx
sar eax, 1
cmp ecx, dword [0x4cc47c]
jne 0x45af47
cmp eax, 0x40
jb 0x45af47
push eax
mov edi, ecx
mov eax, esi
call fcn.0047acf0
xor eax, eax
mov dword [0x4cc47c], eax
mov dword [0x4cc480], eax
jmp 0x45af5c
push 1
push 0
push 0xffffffffffffffff
push ecx
push esi
call fcn.0047a5f0
test eax, eax
je 0x45c5b6
cmp dword [ebp - 0x28], 0
jne 0x45c58f
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.0045d120
jmp 0x45c338
mov edx, dword [ebx + 0xc]
mov esi, 1
test edx, edx
je 0x45afc0
mov eax, dword [ebp - 0x3c]
cmp eax, 0xc8
je 0x45c5a3
cmp edx, edi
jne 0x45afb5
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 0x45aff6
lea eax, [ebp - 0x60]
mov dword [ebx], 0x4a48a0
mov dword [ebx + 8], 5
mov dword [ebx + 4], 0
mov dword [ebp - 4], 0xffffffff
call fcn.0045d120
jmp 0x45c338
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 0x3d], 0
je 0x45b00f
test esi, esi
je 0x45b047
xor edx, edx
cmp dword [ebp - 0x28], edx
sete dl
mov esi, edx
jmp 0x45b047
cmp edi, dword [0x4cc47c]
jne 0x45b042
xor esi, esi
cmp dword [ebp - 0x28], esi
jne 0x45b047
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp eax, 0x44
je 0x45b047
lea esp, [esp]
cmp eax, 0x41
je 0x45b042
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x44
jne 0x45b030
jmp 0x45b047
mov esi, 1
mov eax, dword [ebx]
mov dword [ebx + 4], 0
mov dword [ebx + 8], 5
test esi, esi
je 0x45b10f
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45b062
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 0x45b0a1
mov eax, dword [ebx]
add esi, esi
push esi
push eax
push edi
call fcn.00498a60
add esp, 0xc
add edi, esi
mov dword [ebp - 0x4c], edi
jmp 0x45b10f
cmp esi, 0x1001
jae 0x45b0d1
cmp dword [ebp - 0x44], 0x9c40
jae 0x45b0d1
lea eax, [esi + esi]
call fcn.004979b0
mov ecx, dword [ebx]
mov eax, esp
lea edx, [esi + esi]
push edx
push ecx
push eax
call fcn.00498a60
add esp, 0xc
add dword [ebp - 0x44], esi
jmp 0x45b10f
cmp dword [ebp - 0x3c], 0xc8
je 0x45c5ca
lea eax, [esi + esi]
push eax
call fcn.00490f24
mov ecx, dword [ebp - 0x3c]
add esp, 4
mov dword [ebp + ecx*4 - 0x5bc], eax
test eax, eax
je 0x45c5ca
mov ecx, dword [ebx]
lea edx, [esi + esi]
push edx
push ecx
push eax
call fcn.00498a60
add esp, 0xc
inc dword [ebp - 0x3c]
mov dword [ebx], eax
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d120
jmp 0x45c338
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x60]
mov dword [ebx + 0xc], edi
test eax, eax
je 0x45c338
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x5c]
push edx
push eax
call fcn.0047af10
add esp, 0xc
jmp 0x45c338
cmp eax, 0x20
jne 0x45b193
cmp dword [ebx + 0xc], 0
je 0x45c538
test esi, esi
je 0x45c538
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 0x45c342
test esi, esi
je 0x45aa94
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 0x45aa94
cmp eax, 0x21
jne 0x45b1ee
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x45aa94
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 0x45c338
add eax, 0xffffffee
cmp eax, 0x2a
ja case.0x45b1fd.20
movzx eax, byte [eax + 0x45c9ac]
jmp dword [eax*4 + 0x45c9a4]
push edi
call fcn.00451480
mov edx, dword [ebp - 0x1c]
mov esi, eax
add esp, 4
mov dword [ebp - 0x78], esi
jmp 0x45b21a
mov esi, dword [ebp - 0x78]
mov eax, dword [ebx + 8]
lea ecx, [eax - 9]
mov dword [ebp - 0x50], 0
cmp ecx, 0x37
ja case.0x45b237.11
movzx ecx, byte [ecx + 0x45c9f4]
jmp dword [ecx*4 + 0x45c9d8]
mov eax, esi
mov esi, edi
call fcn.004513b0
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 1
jmp 0x45c338
mov eax, esi
mov esi, edi
call fcn.004513b0
test eax, eax
jne 0x45bc51
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
jmp 0x45c338
cmp esi, 1
jne 0x45b2a2
push esi
mov ecx, edi
call fcn.004515d0
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 0x45c338
cmp esi, 2
jne 0x45b464
push 1
push 0
mov eax, edi
call fcn.00451660
fchs
fstp qword [ebx]
add esp, 8
mov dword [ebx + 8], esi
jmp 0x45c338
mov ecx, dword [edi + 8]
xor edx, edx
cmp eax, 0x3f
setge dl
mov dword [ebp - 0x30], edx
cmp ecx, 4
jne 0x45b464
test esi, esi
je 0x45b390
cmp eax, 9
je 0x45b2f5
mov dword [ebp - 0x38], 0xffffffff
cmp eax, 0x3f
jne 0x45b2fc
mov dword [ebp - 0x38], 1
push 1
cmp esi, 1
jne 0x45b327
mov ecx, edi
call fcn.004515d0
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.004154f0
jmp 0x45b340
push 0
mov eax, edi
call fcn.00451660
fst qword [ebx]
fiadd dword [ebp - 0x38]
mov ecx, dword [edi]
fstp qword [esp]
push ecx
call fcn.00415520
cmp dword [ebp - 0x30], 0
je 0x45b2bd
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x45b359
mov edx, dword [edi + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
jne 0x45b36b
mov dword [ebx], edi
mov dword [ebx + 8], 4
jmp 0x45c338
cmp esi, 1
jne 0x45b381
mov eax, dword [ebp - 0x38]
cdq
add dword [ebx], eax
mov dword [ebx + 8], esi
adc dword [ebx + 4], edx
jmp 0x45c338
fild dword [ebp - 0x38]
mov dword [ebx + 8], esi
fadd qword [ebx]
fstp qword [ebx]
jmp 0x45c338
cmp ecx, 4
jne 0x45b464
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x45b3a6
mov ecx, dword [eax + 0xc]
jmp 0x45b3a8
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x45b3b3
call fcn.00431250
mov ecx, dword [edi]
call fcn.00415490
cmp dword [ebp - 0x30], 0
je 0x45b464
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x45b3d3
mov eax, dword [edi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x45b464
mov dword [ebx], edi
mov dword [ebx + 8], 4
jmp 0x45c338
mov eax, dword [edi + 8]
cmp eax, 4
jne 0x45b447
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x45b3fe
mov ecx, dword [eax + 0xc]
jmp 0x45b400
mov ecx, eax
test byte [ecx + 0x15], 2
je 0x45b425
mov dword [ebx + 8], 1
mov edi, dword [edi]
cmp byte [edi + 0x17], 0
jne 0x45b418
mov edi, dword [edi + 0xc]
mov eax, dword [edi]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c338
call fcn.00415550
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 0x45c338
cmp eax, 6
jne 0x45b464
mov dword [ebx + 8], 1
mov eax, dword [edi]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45c338
test esi, esi
jne 0x45b476
mov dword [ebx], 0x4a48a0
mov dword [ebx + 8], 0
jmp 0x45c338
xor ecx, ecx
cmp esi, 1
sete cl
push ecx
mov ecx, edi
call fcn.004515d0
add esp, 4
cmp dword [ebx + 8], 0x3b
jne 0x45b4c6
test edx, edx
ja 0x45b4b1
jb 0x45b49a
cmp eax, 0xffffffff
ja 0x45b4b1
not eax
mov dword [ebx + 4], 0
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c338
not eax
not edx
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c338
cmp eax, 0x1000
jae 0x45b4e1
xor eax, eax
cdq
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c338
movzx eax, byte [eax]
cdq
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45c338
test edx, edx
je 0x45aa94
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 0x45aa94
cmp eax, 0x12
jne 0x45b555
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 0x45c338
mov eax, dword [ebx]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
jmp 0x45c338
cmp eax, 0x1f
jg 0x45b65e
cmp eax, 0x13
jl 0x45b65e
cmp ecx, 4
je 0x45b57e
mov dword [ebx], 0x4a48a0
mov dword [ebx + 8], 0
jmp 0x45c338
add eax, 0xffffffed
cmp eax, 0xc
ja case.default.0x45b58a
jmp dword [eax*4 + 0x45ca2c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [esi]
mov eax, edi
call fcn.00479f10
test eax, eax
je 0x45c7cf
mov ecx, dword [esi]
mov al, byte [ecx + 0x17]
test al, al
jne 0x45b5b4
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
mov ebx, dword [ebp - 0x48]
cmp al, 2
mov eax, ebx
jne 0x45b5e1
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 0x45c338
mov dword [eax], ecx
mov dword [eax + 8], 4
jmp 0x45c338
mov dword [ebx + 8], 0x34
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x35
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x36
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x37
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x38
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x2e
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x2f
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x30
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x31
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x32
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x33
jmp case.default.0x45b58a
mov dword [ebx + 8], 0x2d
mov eax, dword [edx]
mov dword [ebp - 0x50], eax
cmp dword [ebx + 8], 0x2d
je 0x45bbf8
test esi, esi
je 0x45bbf8
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00451480
add esp, 4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x45bbf8
cmp esi, 1
jne 0x45b696
cmp eax, esi
jne 0x45b696
cmp dword [ebx + 8], 0x37
jne 0x45b6ab
mov eax, dword [ebx + 8]
cmp eax, 0x33
jg 0x45b9a1
cmp eax, 0x2e
jl 0x45b9a1
xor edx, edx
cmp esi, 1
sete dl
mov ecx, edi
push edx
call fcn.004515d0
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.004515d0
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.0x45b702.45
jmp dword [ecx*4 + 0x45ca60]
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 0x45c300
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 0x45c300
push esi
push edi
push edx
push eax
call fcn.00497060
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c300
cmp eax, edi
jne 0x45b769
cmp edx, esi
jne 0x45b769
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 0x45c300
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 0x45c300
cmp eax, edi
jne 0x45b785
cmp edx, esi
je 0x45b769
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 0x45c300
cmp edx, esi
jl 0x45b769
jg 0x45b7a6
cmp eax, edi
jbe 0x45b769
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 0x45c300
cmp edx, esi
jg 0x45b769
jl 0x45b7c7
cmp eax, edi
jae 0x45b769
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 0x45c300
cmp edx, esi
jl 0x45b769
jg 0x45b7e8
cmp eax, edi
jb 0x45b769
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 0x45c300
cmp edx, esi
jg 0x45b769
jl 0x45b811
cmp eax, edi
ja 0x45b769
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 0x45c300
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 0x45c300
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 0x45c300
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 0x45c300
mov ecx, edi
call fcn.0049ff80
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c300
mov ecx, edi
call fcn.0049ff50
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c300
mov ecx, edi
call fcn.0049d620
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c300
mov ecx, edi
or ecx, dword [ebp - 0x80]
jne 0x45b8c3
mov edx, ecx
mov dword [ebx], 0x4a48a0
mov dword [ebp - 0x24], ecx
mov dword [ebx + 8], edx
jmp 0x45c300
mov ecx, dword [ebp - 0x80]
push ecx
push edi
push edx
push eax
call fcn.0049f540
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45c300
mov ecx, eax
or ecx, edx
jne 0x45b907
test esi, esi
jg 0x45b963
jl 0x45b8ef
test edi, edi
jae 0x45b963
mov dword [ebp - 0x24], 0
mov edx, dword [ebp - 0x24]
mov dword [ebx], 0x4a48a0
mov dword [ebx + 8], edx
jmp 0x45c300
test edx, edx
jg 0x45b963
jl 0x45b911
test eax, eax
jae 0x45b963
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.00432160
cmp dword [ebp - 0x30], 0
fst qword [ebx]
je 0x45b96c
push 0
push 2
push esi
push edi
call fcn.0049ffa0
or eax, edx
je 0x45b96c
fchs
fstp qword [ebx]
jmp 0x45b96e
mov dword [ebp - 0x30], 0
jmp 0x45b92b
fstp st(0)
test esi, esi
jg 0x45b98a
jl 0x45b978
test edi, edi
jae 0x45b98a
mov dword [ebp - 0x24], 2
mov edx, dword [ebp - 0x24]
mov dword [ebx + 8], edx
jmp 0x45c300
fld qword [ebx]
call fcn.0049f4c6
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov edx, dword [ebp - 0x24]
mov dword [ebx + 8], edx
jmp 0x45c300
xor eax, eax
cmp esi, 2
sete al
push eax
push 1
mov eax, edi
call fcn.00451660
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.00451660
fst qword [ebp - 0x6c]
mov ecx, dword [ebx + 8]
add esp, 0x10
cmp ecx, 0x25
jl 0x45b9e2
mov edi, 1
cmp ecx, 0x2c
jle 0x45b9e7
mov edi, 2
lea eax, [ecx - 0x25]
cmp eax, 0x19
ja case.0x45b9f6.45
movzx edx, byte [eax + 0x45caf8]
jmp dword [edx*4 + 0x45cac8]
fadd qword [ebp - 0x34]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45c300
fsub qword [ebp - 0x34]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45c300
fmul qword [ebp - 0x34]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45c300
fld qword [ebp - 0x34]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45ba48
fstp st(1)
mov dword [ebx], 0x4a48a0
xor edi, edi
fstp st(0)
mov dword [ebx + 8], edi
jmp 0x45c300
fdivp st(1)
fst qword [ebx]
cmp ecx, 0x38
jne case.0x45b9f6.45
sub esp, 8
fstp qword [esp]
call fcn.004321c0
fstp qword [ebx]
mov dword [ebx + 8], edi
jmp 0x45c300
fld qword [ebp - 0x34]
fucompp
fnstsw ax
test ah, 0x44
jp 0x45ba86
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c300
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c300
fld qword [ebp - 0x34]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x45ba86
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c300
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jne 0x45ba86
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c300
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 5
jp 0x45ba86
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c300
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 1
jne 0x45ba86
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c300
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jp 0x45ba86
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45c300
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45bb45
mov esi, 1
jmp 0x45bb47
xor esi, esi
fld st(1)
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x45bb70
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jne 0x45bb72
fstp st(0)
xor edi, edi
mov dword [ebx], 0x4a48a0
mov dword [ebx + 8], edi
jmp 0x45c300
fstp st(0)
test esi, esi
je 0x45bb9c
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.004321f0
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45bb60
fld qword [ebp - 0x6c]
fchs
fld qword [ebp - 0x34]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.00432160
fstp qword [ebx]
test esi, esi
je 0x45ba40
fld qword [0x4c1f68]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.004321f0
sub esp, 8
fstp qword [esp]
call fcn.00432150
fld1
fucompp
fnstsw ax
test ah, 0x44
jp 0x45ba40
fld qword [ebx]
mov dword [ebx + 8], edi
fchs
fstp qword [ebx]
jmp 0x45c300
mov eax, dword [ebx + 8]
add eax, 0xffffffdb
cmp eax, 3
ja 0x45bc66
mov ecx, edi
call fcn.00451870
mov ecx, dword [ebp - 0x18]
mov esi, eax
call fcn.00451870
test esi, esi
jne 0x45bc1c
test eax, eax
je 0x45bc66
mov ecx, dword [ebx + 8]
cmp ecx, 0x27
je 0x45bc30
cmp ecx, 0x28
je 0x45bc30
mov ecx, 1
jmp 0x45bc32
xor ecx, ecx
xor edx, edx
cmp esi, eax
sete dl
cmp ecx, edx
jne 0x45bc51
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
jmp 0x45c338
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], 1
jmp 0x45c338
lea ecx, [ebp - 0xfbc]
mov eax, edi
call fcn.00451710
mov esi, eax
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x29c]
mov dword [ebp - 0x68], esi
call fcn.00451710
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 8]
add eax, 0xffffffdb
mov dword [ebp - 0x24], 1
cmp eax, 8
ja case.default.0x45bc9f
jmp dword [eax*4 + 0x45cb14]
mov eax, dword [0x4c7a54]
cmp byte [eax + 0xf2], 0
push esi
jne 0x45bcc3
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00490e99
add esp, 8
jmp 0x45bccd
mov edx, dword [ebp - 0x14]
push edx
call dword [0x4a22cc]
test eax, eax
jne 0x45bce2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c2fa
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c2fa
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bd19
test cx, cx
je 0x45bd15
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bd19
add eax, 4
add esi, 4
test cx, cx
jne 0x45bcf3
xor eax, eax
jmp 0x45bd1e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45bce2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c2fa
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bd6e
test cx, cx
je 0x45bd58
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bd6e
add eax, 4
add esi, 4
test cx, cx
jne 0x45bd36
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 0x45c2fa
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 0x45c2fa
mov edx, dword [0x4c7a54]
mov al, byte [edx + 0xf2]
test al, al
jne 0x45bdb8
mov eax, dword [ebp - 0x14]
push esi
push eax
call fcn.00490e99
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 0x45c2fa
cmp al, 2
jne 0x45bddb
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 0x45c2fa
mov eax, dword [ebp - 0x14]
mov edi, edi
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45be18
test cx, cx
je 0x45be02
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45be18
add eax, 4
add esi, 4
test cx, cx
jne 0x45bde0
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 0x45c2fa
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 0x45c2fa
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45be4f
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490e99
add esp, 8
jmp 0x45be8e
cmp al, 2
jne 0x45be60
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45be8e
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45be89
test cx, cx
je 0x45be85
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45be89
add eax, 4
add esi, 4
test cx, cx
jne 0x45be63
xor eax, eax
jmp 0x45be8e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jle 0x45bce2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c2fa
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45bec5
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490e99
add esp, 8
jmp 0x45bf0b
cmp al, 2
jne 0x45bed6
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45bf0b
mov eax, dword [ebp - 0x14]
lea esp, [esp]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bf06
test cx, cx
je 0x45bf02
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bf06
add eax, 4
add esi, 4
test cx, cx
jne 0x45bee0
xor eax, eax
jmp 0x45bf0b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jns 0x45bce2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c2fa
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45bf42
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490e99
add esp, 8
jmp 0x45bf81
cmp al, 2
jne 0x45bf53
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45bf81
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bf7c
test cx, cx
je 0x45bf78
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bf7c
add eax, 4
add esi, 4
test cx, cx
jne 0x45bf56
xor eax, eax
jmp 0x45bf81
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, 0xffffffff
jle 0x45bce2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c2fa
mov eax, dword [0x4c7a54]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45bfb9
mov ecx, dword [ebp - 0x14]
push esi
push ecx
call fcn.00490e99
add esp, 8
jmp 0x45bffb
cmp al, 2
jne 0x45bfca
mov edx, dword [ebp - 0x14]
push esi
push edx
call dword [0x4a22cc]
jmp 0x45bffb
mov eax, dword [ebp - 0x14]
lea ecx, [ecx]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x45bff6
test cx, cx
je 0x45bff2
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x45bff6
add eax, 4
add esi, 4
test cx, cx
jne 0x45bfd0
xor eax, eax
jmp 0x45bffb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, 1
jge 0x45bce2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45c2fa
cmp dword [edi + 8], 4
jne 0x45c024
mov eax, dword [edi]
call fcn.00415950
jmp 0x45c03f
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45c030
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x50], 0
mov dword [ebp - 0x38], eax
je 0x45c067
push eax
mov eax, dword [ebp - 0x50]
push esi
call fcn.0047ac60
test eax, eax
je 0x45c067
mov ecx, dword [ebp - 0x50]
mov dword [ebx], ecx
mov dword [ebx + 8], 4
jmp 0x45c338
mov edx, dword [ebp - 0x18]
cmp dword [edx + 8], 4
jne 0x45c07b
mov eax, edx
mov eax, dword [eax]
call fcn.00415950
jmp 0x45c090
mov eax, dword [ebp - 0x14]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45c081
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 0x45c21d
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x45c0c6
cmp dword [ebp - 0x1c], 0
jne 0x45c0c6
mov esi, dword [ebp - 0x20]
cmp dword [esi + 0x18], 0x44
jne 0x45c0c9
mov dword [ebp - 0x30], 1
jmp 0x45c110
mov esi, dword [ebp - 0x20]
cmp dword [esi + 0x18], 0x13
jne 0x45c21d
cmp dword [ebp - 0x1c], 0
je 0x45c21d
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0xdc0]
cmp dword [eax + 8], 4
jne 0x45c21d
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x45c100
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 1
jne 0x45c21d
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x24], eax
test eax, eax
je 0x45c21d
push 0
push 0
mov ecx, eax
call fcn.00401280
cmp eax, 0x4cc4d0
jne 0x45c12f
xor eax, eax
cmp eax, dword [ebp - 0x14]
jne 0x45c180
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x68]
push edx
push eax
mov eax, dword [ebp - 0x24]
call fcn.0047ac60
test eax, eax
je 0x45c21d
cmp dword [ebp - 0x30], 0
jne case.0x45c6cb.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 0x45c338
cmp eax, dword [ebp - 0x68]
je 0x45c21d
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x24]
push 1
push 0
dec ecx
push ecx
push 0
push edx
call fcn.0047a5f0
test eax, eax
je 0x45c7cf
mov ecx, dword [ebp - 0x24]
push 0
push 1
call fcn.00401280
cmp dword [ebp - 0x28], 0
mov edi, eax
je 0x45c1cd
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x14]
lea ecx, [eax + eax]
push ecx
push edx
push edi
call fcn.00498a60
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.00498a60
mov edx, dword [ebp - 0x24]
add esp, 0xc
cmp byte [edx + 0x17], 0
mov eax, edx
jne 0x45c1f6
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x17], 2
jne 0x45c214
cmp dword [0x4cc508], 0
je 0x45c214
mov ecx, 0x4cc4fc
call fcn.004047e0
jmp 0x45c14c
and byte [eax + 0x15], 0x86
jmp 0x45c14c
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 0x45c241
mov dword [ebx], eax
lea eax, [eax + ecx*2]
mov dword [ebp - 0x4c], eax
jmp 0x45c299
cmp ecx, 0x1001
jae 0x45c266
cmp dword [ebp - 0x44], 0x9c40
jae 0x45c266
mov esi, dword [ebp - 0x74]
lea eax, [esi + esi]
call fcn.004979b0
add dword [ebp - 0x44], esi
mov eax, esp
mov dword [ebx], eax
jmp 0x45c299
mov esi, dword [ebp - 0x3c]
cmp esi, 0xc8
je 0x45c7bb
mov ecx, dword [ebp - 0x74]
lea edx, [ecx + ecx]
push edx
call fcn.00490f24
add esp, 4
mov dword [ebp + esi*4 - 0x5bc], eax
mov dword [ebx], eax
test eax, eax
je 0x45c7bb
inc esi
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x45c2b3
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx]
lea eax, [esi + esi]
push eax
push ecx
push edx
call fcn.00498a60
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.00498a60
mov edx, dword [ebp - 0x18]
xor eax, eax
add esp, 0xc
cmp dword [edx + 8], eax
je 0x45c2e8
cmp dword [edi + 8], eax
je 0x45c2e8
mov dword [ebp - 0x24], 5
mov dword [ebx + 4], eax
jmp 0x45c2fa
mov dword [ebp - 0x24], eax
jmp 0x45c2fa
mov dword [ebx], 0x4a48a0
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x24]
mov dword [ebx + 8], eax
cmp dword [ebp - 0x50], 0
je 0x45c338
mov eax, ebx
mov ebx, dword [ebp - 0x50]
call fcn.00479f10
test eax, eax
je 0x45c7cf
mov al, byte [ebx + 0x17]
test al, al
jne 0x45c325
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 2
je 0x45c335
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 0x45c4e9
push ebx
call fcn.00451480
add esp, 4
dec eax
je 0x45c430
dec eax
mov eax, dword [ebx + 8]
je 0x45c390
cmp eax, 6
je 0x45c4df
cmp eax, 4
jne 0x45c37b
mov eax, dword [ebx]
cmp byte [eax + 0x17], 0
jne 0x45c371
mov eax, dword [eax + 0xc]
test byte [eax + 0x15], 2
jne 0x45c4df
xor ecx, ecx
mov eax, ebx
call fcn.00451710
xor edx, edx
cmp word [eax], dx
setne dl
mov esi, edx
jmp 0x45c3d7
dec eax
cmp eax, 5
ja case.0x45c396.3
jmp dword [eax*4 + 0x45cb38]
fild qword [ebx]
jmp 0x45c3c6
fld qword [ebx]
jmp 0x45c3c6
mov eax, dword [ebx]
push 1
call fcn.004156b0
jmp 0x45c3c6
mov eax, dword [ebx + 4]
test eax, eax
je case.0x45c396.3
fild qword [eax]
jmp 0x45c3c6
mov eax, dword [ebx]
push eax
call fcn.004929e2
add esp, 4
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45c4df
xor esi, esi
cmp dword [ebx + 8], 6
jne 0x45c3e7
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 0x45c52b
mov edi, 0x21
xor edx, edx
cmp dword [ecx + 8], 0x22
sete dl
cmp esi, edx
jne 0x45c532
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x45c419
cmp dword [ecx + 8], edi
jne 0x45c3f9
mov eax, esi
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], ecx
jmp 0x45c338
mov eax, dword [ebx + 8]
dec eax
cmp eax, 5
ja case.0x45c439.3
jmp dword [eax*4 + 0x45cb50]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x45c4d7
mov ecx, dword [ebx + 4]
test ecx, ecx
je case.0x45c439.3
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x45c4d7
fld qword [ebx]
call fcn.0049f4c6
jmp 0x45c4d7
mov eax, dword [ebx]
push 1
call fcn.00415630
jmp 0x45c4d7
mov esi, dword [ebx]
mov eax, esi
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x45c480
cmp ecx, 9
jne 0x45c485
add eax, 2
jmp 0x45c473
movzx ecx, word [eax]
test cx, cx
je 0x45c4ce
cmp ecx, 0x2d
je 0x45c497
cmp ecx, 0x2b
jne 0x45c49a
add eax, 2
cmp word [eax], 0x30
jne 0x45c4ce
movzx ecx, word [eax + 2]
cmp ecx, 0x78
je 0x45c4ae
cmp ecx, 0x58
jne 0x45c4ce
movzx ecx, word [eax + 4]
push ecx
call fcn.0049219d
add esp, 4
test eax, eax
je 0x45c4ce
push 0x10
push 0
push esi
call fcn.00492903
add esp, 0xc
jmp 0x45c4d7
push esi
call fcn.00491ee1
add esp, 4
or eax, edx
je case.0x45c439.6
mov esi, 1
jmp 0x45c3d7
mov esi, dword [ebp - 0x64]
mov edi, dword [ebp - 0x1c]
cmp esi, edi
jle 0x45c50f
mov eax, dword [ebp + esi*4 - 0xdc0]
dec esi
cmp dword [eax + 8], 6
jne 0x45c50b
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp esi, edi
jg 0x45c4f3
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 0x45a824
test esi, esi
jne 0x45c532
mov dword [ebp - 0x20], ecx
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
add edi, 0x10
jmp 0x45a824
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x18]
push edx
jmp 0x45c7c0
cmp dword [esi], 1
je 0x45c557
mov dword [ebp - 0x40], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x60]
test eax, eax
je case.0x45c6cb.3
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x5c]
push edx
push eax
call fcn.0047af10
add esp, 0xc
jmp case.0x45c6cb.3
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x45c58f
push ebx
call fcn.00491536
add esp, 4
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d120
jmp case.0x45c6cb.3
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
push edx
push 0
push 0x4a76d0
call fcn.00430920
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d120
jmp 0x45c7cf
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [ebp + 8]
push 0
push 0x4a76d0
call fcn.00430920
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.0045d120
jmp 0x45c7cf
mov edx, dword [ebp + 8]
mov cl, byte [edx]
cmp cl, 3
je case.0x45c6cb.3
cmp dword [ebp - 0x1c], 1
jne 0x45aa94
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0xdbc]
mov dword [ebp - 0x78], eax
test ebx, ebx
je 0x45c62e
call fcn.00479f10
test eax, eax
je 0x45c7cf
jmp case.0x45c6cb.3
cmp cl, 0x11
je 0x45c8b2
cmp cl, 0x6b
je 0x45c8b2
cmp cl, 0x6c
je 0x45c8b2
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x45c6b7
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x45c6a0
cmp ecx, 2
je 0x45c6a0
cmp ecx, 6
je 0x45c6a0
cmp ecx, 4
jne 0x45c6b7
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x45c672
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x45c6b7
mov dword [edx + 8], 6
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x45c68a
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, 0x4a48a0
jmp 0x45c91f
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, 0x4a48a0
jmp 0x45c91f
mov esi, dword [ebp + 0x18]
mov ecx, dword [esi]
mov dword [ebp - 0x40], ecx
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x45c6cb.3
jmp dword [ecx*4 + 0x45cb68]
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 0x45c6e7
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 2]
add dword [esi], ecx
jmp case.0x45c6cb.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.004772c0
lea ecx, [eax + eax + 2]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add dword [eax], ecx
jmp case.0x45c6cb.3
cmp ecx, 4
jne 0x45c752
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.00415950
jmp 0x45c76f
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 0x45c760
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 0x45c78e
mov eax, ecx
mov edx, dword [ebp + 0x28]
lea eax, [eax + edx + 1]
cmp ebx, eax
jbe 0x45c897
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.00490f24
mov edi, eax
add esp, 4
test edi, edi
jne 0x45c7e4
push 0x4a48a0
mov ecx, dword [ebp + 8]
push 0
push 0x4a76d0
call fcn.00430920
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov dword [eax], 0
jmp case.0x45c6cb.3
cmp esi, 0x400000
jbe 0x45c7f2
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 0x45c810
lea ecx, [esi + esi]
push ecx
push eax
push edi
call fcn.00498a60
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.00498a60
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
add esp, 0xc
push ecx
call fcn.00491536
mov edx, dword [ebp + 0x20]
mov eax, dword [edx]
add esp, 4
cmp eax, 0x400000
jbe 0x45c84c
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 0x45c880
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + ecx*4]
cmp eax, edx
jb 0x45c87a
cmp eax, dword [ebp + 8]
jae 0x45c87a
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 0x45c85e
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.0x45c6cb.3
mov eax, dword [esi]
cmp eax, edi
je 0x45c8ab
lea ecx, [ebx + ebx]
push ecx
push edi
push eax
call fcn.004916b0
add esp, 0xc
lea edx, [ebx + ebx]
add dword [esi], edx
jmp case.0x45c6cb.3
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x45c8be.3
jmp dword [ecx*4 + 0x45cb84]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x45c8be.6
mov dword [ebp - 0x40], 0x4a48a0
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x45c8f5
mov edi, edi
mov eax, dword [ebp + esi*4 - 0x5c0]
dec esi
push eax
call fcn.00491536
add esp, 4
test esi, esi
jne 0x45c8e0
mov esi, dword [ebp - 0x64]
test esi, esi
je 0x45c91c
lea esp, [esp]
mov eax, dword [ebp + esi*4 - 0xdc0]
dec esi
cmp dword [eax + 8], 6
jne 0x45c918
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
jne 0x45c900
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.0x45c8be.6
jmp case.0x45c6cb.6
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x45c8be.0
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jmp 0x45c8ca
mov eax, dword [eax]
call fcn.004512c0
jmp 0x45c96d
mov esi, dword [eax]
call fcn.00451320
jmp 0x45c96d
mov eax, dword [ebp + 8]
test eax, eax
je case.0x45c6cb.6
mov dword [ebp - 0x40], 0x4a7324
jmp case.0x45c6cb.3