Function at 0x458b70
Capabilities:
Check http status code
Parse credit card information
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x498978
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdb4
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
push ebx
xor edx, edx
push esi
push edi
xor edi, edi
cmp byte [eax], 2
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp + 0xc]
setne dl
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x2c], 0x49b8cd
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x40], edi
dec edx
and edx, dword [0x4ae218]
shl ecx, 4
mov dword [ebp - 0x74], edx
mov edx, dword [eax + 8]
mov esi, dword [ecx + edx + 0xc]
lea eax, [ecx + edx + 0xc]
cmp dword [esi + 8], 0x44
mov dword [ebp - 0x20], esi
je 0x45a7f1
mov eax, 0x10
call fcn.004946e0
mov eax, dword [esi]
mov ebx, esp
mov dword [ebx], eax
mov ecx, dword [esi + 4]
mov dword [ebx + 4], ecx
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x18], ebx
cmp eax, 8
jge 0x4590b8
cmp eax, 7
jne 0x45a539
mov edx, dword [ebx + 4]
test edx, edx
je 0x458eb4
mov eax, dword [ebx]
xor esi, esi
mov dword [ebx], 0x49b8cd
mov dword [ebx + 8], esi
mov ecx, dword [eax]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edx
cmp ecx, edx
jne 0x458c85
movzx edi, word [eax + 0xa]
cmp byte [edi + edx], 0
jne 0x458c85
cmp byte [eax + 0x14], 0
je 0x458c85
mov edx, dword [eax + 4]
cmp byte [edx + 0x17], 0
jne 0x458c5b
mov edx, dword [edx + 0xc]
test byte [edx + 0x15], 2
je 0x458c85
mov dword [ebx + 8], 6
mov eax, dword [eax + 4]
cmp byte [eax + 0x17], 0
jne 0x458c74
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [ebx], eax
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
jmp 0x45a539
test ecx, ecx
je 0x458d8b
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
cmp eax, ecx
jae 0x458cb1
cmp esi, 0xfd
jae 0x458cbb
mov cl, byte [eax]
mov byte [ebp + esi - 0x19c], cl
inc eax
inc esi
cmp eax, dword [edi]
jb 0x458c97
mov dword [ebp - 0x18], eax
cmp esi, 0xfd
jb 0x458cc6
jmp 0x458cbe
mov dword [ebp - 0x18], eax
cmp eax, dword [edi]
jb 0x458e05
mov edi, dword [edi + 4]
movzx eax, byte [edi + 0x17]
cmp eax, 3
ja case.default.0x458cd2
jmp dword [eax*4 + 0x45ab54]
mov eax, edi
call fcn.004011b0
cmp dword [0x4ae444], 0
jne 0x458d1a
cmp dword [edi + 0xc], 0
jne 0x458d1a
mov eax, dword [edi + 0x18]
push 0
lea edx, [ebp - 0x75]
push edx
push eax
call dword [sym.imp.KERNEL32.DLL_GetEnvironmentVariableA]
test eax, eax
je 0x458d10
mov dword [0x4b0308], 0
dec eax
jmp 0x458d4f
mov dword [0x4b0308], edi
xor eax, eax
jmp 0x458d4f
mov eax, dword [edi + 0xc]
jmp 0x458d4f
mov ecx, dword [edi + 0xc]
push 0
call fcn.00478470
jmp 0x458d4f
push 0
mov ecx, 0x4af8f8
call fcn.00404640
cmp eax, 0xffffffff
jne 0x458d4f
xor eax, eax
jmp 0x458d4f
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x10]
push ecx
push 0
call edx
add esp, 8
mov ecx, 0xfd
sub ecx, esi
cmp eax, ecx
ja 0x458e05
mov edi, dword [ebp - 0x14]
mov ecx, dword [edi + 4]
lea edx, [ebp + esi - 0x19c]
push edx
call fcn.00478470
mov ecx, dword [edi + 0xc]
add esi, eax
movzx eax, word [edi + 0xa]
add dword [ebp - 0x18], eax
add edi, 0xc
mov dword [ebp - 0x14], edi
test ecx, ecx
jne 0x458c8d
mov ecx, dword [ebp - 0x18]
mov al, byte [ecx]
test al, al
je 0x458dab
cmp esi, 0xfd
jae 0x458db3
inc ecx
mov byte [ebp + esi - 0x19c], al
mov al, byte [ecx]
inc esi
test al, al
jne 0x458d94
cmp esi, 0xfd
jb 0x458db8
cmp byte [ecx], 0
jne 0x458e05
mov eax, dword [ebp - 0x14]
test esi, esi
jne 0x458dc5
cmp byte [eax + 8], 0
je 0x458e08
mov byte [ebp + esi - 0x19c], 0
cmp byte [eax + 8], 0
je 0x458e57
lea eax, [esi + 1]
mov dword [ebx + 8], 0
call fcn.00491970
mov esi, esp
lea eax, [ebp - 0x19c]
mov edx, esi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x458df4
mov dword [ebx], esi
jmp 0x45a539
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x458e18
lea ecx, [ecx]
add eax, 0xc
cmp dword [eax], 0
jne 0x458e10
cmp byte [eax + 8], 0
je 0x45a539
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je case.0x45a8c8.3
mov eax, dword [ebp - 0x2c]
test eax, eax
je case.0x45a8c8.3
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.004780a0
test eax, eax
jne case.0x45a8c8.3
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
jmp case.0x45a8c8.3
cmp byte [ebp - 0x19c], 0
je 0x45a9ba
lea edx, [ebp - 0x51]
push edx
push 3
lea eax, [ebp - 0x98]
push eax
push esi
lea ecx, [ebp - 0x19c]
push ecx
mov ecx, 0x4af278
call fcn.00422f00
test eax, eax
jne 0x458eb2
mov eax, dword [ebp - 0x98]
xor edx, edx
cmp byte [ebp - 0x51], dl
mov ecx, esi
setne dl
inc edx
push edx
push eax
push 0x4af278
lea edx, [ebp - 0x19c]
call fcn.004231a0
test eax, eax
je 0x45a9ba
mov dword [ebx], eax
mov esi, dword [ebx]
mov al, byte [esi + 0x17]
mov edx, dword [ebp - 0x20]
mov ecx, dword [0x4aa988]
xor edi, edi
test al, al
jne 0x458ece
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
movzx eax, al
dec eax
je 0x458f4d
sub eax, 3
jne 0x458f80
cmp dword [edx + 0x18], 0x41
jne 0x458f11
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
cmp eax, edi
je 0x458f11
cmp dword [eax + 8], 0x44a720
jne 0x458f11
add edx, 0x10
mov dword [ebp - 0x20], edx
mov dword [ebx], 1
mov dword [ebx + 4], edi
mov dword [ebx + 8], 1
jmp 0x45a539
mov eax, dword [esi + 0x10]
cmp eax, 0x445430
jne 0x458f32
mov edx, dword [ecx + 8]
mov dword [ebx], edx
mov eax, dword [ecx + 0xc]
mov dword [ebx + 4], eax
mov dword [ebx + 8], 1
jmp 0x45a539
cmp eax, 0x445c20
jne 0x458f80
mov ecx, dword [ecx + 0x38]
mov dword [ebx], ecx
mov dword [ebx + 4], edi
mov dword [ebx + 8], 1
jmp 0x45a539
cmp dword [0x4ae444], edi
jne 0x45a278
cmp byte [esi + 0x17], 0
jne 0x458f64
mov eax, dword [esi + 0xc]
jmp 0x458f66
mov eax, esi
test byte [eax + 0x15], 0xa
jne 0x45a278
xor edx, edx
cmp dword [eax + 0xc], edi
setne dl
cmp edx, edi
jne 0x45a278
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x458f89
jmp dword [eax*4 + 0x45ab64]
mov eax, esi
call fcn.004011b0
cmp dword [0x4ae444], edi
jne 0x458fca
cmp dword [esi + 0xc], edi
jne 0x458fca
mov ecx, dword [esi + 0x18]
push edi
lea eax, [ebp - 0x7d]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_GetEnvironmentVariableA]
cmp eax, edi
je 0x458fc0
mov dword [0x4b0308], edi
dec eax
jmp 0x458ffc
mov dword [0x4b0308], esi
xor eax, eax
jmp 0x458ffc
mov eax, dword [esi + 0xc]
jmp 0x458ffc
mov ecx, dword [esi + 0xc]
push edi
call fcn.00478470
jmp 0x458ffc
push edi
mov ecx, 0x4af8f8
call fcn.00404640
cmp eax, 0xffffffff
jne 0x458ffc
xor eax, eax
jmp 0x458ffc
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
push edx
push edi
call eax
add esp, 8
lea esi, [eax + 1]
cmp esi, 1
jne 0x459032
mov eax, dword [ebx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x459013
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 1
jne 0x459024
mov dword [ebx + 8], 4
jmp 0x45a539
mov dword [ebx], 0x49b8cd
mov dword [ebx + 8], edi
jmp 0x45a539
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 0x20]
add eax, dword [ecx]
cmp esi, eax
ja 0x45904f
mov eax, dword [ebp - 0x58]
mov edi, eax
add eax, esi
mov dword [ebp - 0x58], eax
jmp 0x45909b
cmp esi, 0x1001
jae 0x45906e
cmp dword [ebp - 0x40], 0x9c40
jae 0x45906e
mov eax, esi
call fcn.00491970
add dword [ebp - 0x40], esi
mov edi, esp
jmp 0x45909b
cmp dword [ebp - 0x28], 0xc8
je 0x45a73c
push esi
call fcn.00488777
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [ebp + edx*4 - 0x4bc], eax
cmp eax, edi
je 0x45a73c
inc dword [ebp - 0x28]
mov edi, eax
mov ecx, dword [ebx]
push edi
call fcn.00478470
mov dword [ebx], edi
mov dword [ebx + 4], 0
mov dword [ebx + 8], 5
jmp 0x45a539
cmp eax, 0x41
jne 0x4594ae
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
movzx eax, byte [eax + 9]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
cmp eax, edi
jg 0x458e22
sub edi, eax
lea esi, [ebp + edi*4 - 0xcbc]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x50], esi
test ecx, ecx
jne 0x45917d
test edi, edi
je 0x458e22
mov eax, edi
dec eax
mov edi, dword [ebp + eax*4 - 0xcbc]
mov dword [ebp - 0x1c], eax
lea eax, [ebp + eax*4 - 0xcbc]
mov dword [ebp - 0x50], eax
call fcn.0044f6c0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x459166
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x459139
lea edx, [edi*4]
push edx
lea eax, [esi + 4]
push esi
push eax
call fcn.00488cd0
add esp, 0xc
inc dword [ebp - 0x60]
mov eax, 0x10
call fcn.004946e0
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], 0x49b8cd
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0x4abcc8
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp edx, dword [eax + 0x14]
jge 0x45917d
mov ecx, dword [ebx]
cmp byte [ecx + 8], 2
jne 0x458e22
mov edi, dword [ebx + 0xc]
xor eax, eax
lea edx, [ebp - 0x19c]
mov dword [ebx + 4], edx
mov dword [ebp - 0x48], edi
mov dword [ebx + 0xc], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 4], eax
mov eax, dword [ebx]
cmp byte [eax + 8], 2
mov eax, dword [ebp - 0x18]
sete cl
movzx edx, cl
push edx
mov edx, dword [ebp - 0x14]
push eax
push esi
mov esi, dword [ebp + 0x10]
push ebx
push esi
lea ecx, [ebp - 0x6c]
push ecx
push edx
call fcn.0045aeb0
test al, al
je 0x45a748
mov ecx, dword [ebp + 8]
mov dword [0x4af5ec], ecx
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x459483
cmp eax, 2
je 0x459483
cmp eax, 6
je 0x459483
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x459215
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x44
jne 0x459215
cmp byte [ecx], 3
mov dword [ebp - 0x18], 1
je 0x45a77c
mov esi, dword [ebp - 0x74]
jmp 0x45924a
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x13
mov dword [ebp - 0x18], 0
jne 0x459248
test eax, eax
je 0x459248
mov eax, dword [ebp - 0x50]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 4
jne 0x459248
mov esi, dword [eax]
mov al, byte [esi + 0x17]
test al, al
jne 0x459244
mov edx, dword [esi + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
je 0x45924a
xor esi, esi
mov edi, dword [ebx]
test esi, esi
je 0x45930e
mov eax, dword [0x4aa988]
mov edx, dword [eax + 0x94]
cmp edx, dword [ebp - 0x14]
jne 0x459271
mov al, byte [esi + 0x16]
and al, 0x22
cmp al, 2
je 0x45930e
mov ecx, dword [ebx + 0xc]
cmp ecx, edi
jne 0x459287
mov edx, dword [ebx + 4]
push edx
mov edi, ecx
mov eax, esi
call fcn.00478790
jmp 0x4592d5
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x459290
mov ecx, dword [ebx]
sub eax, edx
cmp ecx, dword [0x4af1fc]
jne 0x4592c0
cmp eax, 0x40
jb 0x4592c0
push eax
mov edi, ecx
mov eax, esi
call fcn.00478790
xor eax, eax
mov dword [0x4af1fc], eax
mov dword [0x4af200], eax
jmp 0x4592d5
push 1
push 0
push 0xffffffffffffffff
push ecx
push esi
call fcn.004780a0
test eax, eax
je 0x45a7b3
cmp dword [ebp - 0x18], 0
jne 0x45a78c
mov eax, dword [ebp - 0x20]
dec dword [ebp - 0x1c]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
lea eax, [ebp - 0x6c]
mov dword [ebx], esi
mov dword [ebx + 8], 4
mov dword [ebp - 4], 0xffffffff
call fcn.0045b2f0
jmp 0x45a539
mov edx, dword [ebx + 0xc]
mov esi, 1
test edx, edx
je 0x459339
mov eax, dword [ebp - 0x28]
cmp eax, 0xc8
je 0x45a7a0
cmp edx, edi
jne 0x45932e
xor esi, esi
mov dword [ebp + eax*4 - 0x4bc], edx
inc eax
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebx]
mov dword [ebx + 0xc], ecx
cmp byte [edx], 0
jne 0x45936e
lea eax, [ebp - 0x6c]
mov dword [ebx], 0x49b8cd
mov dword [ebx + 8], 5
mov dword [ebx + 4], 0
mov dword [ebp - 4], 0xffffffff
call fcn.0045b2f0
jmp 0x45a539
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3d], 0
je 0x459387
test esi, esi
je 0x4593bb
xor ecx, ecx
cmp dword [ebp - 0x18], ecx
sete cl
mov esi, ecx
jmp 0x4593bb
cmp edi, dword [0x4af1fc]
jne 0x4593b6
xor esi, esi
cmp dword [ebp - 0x18], esi
jne 0x4593bb
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp eax, 0x44
je 0x4593bb
cmp eax, 0x41
je 0x4593b6
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x44
jne 0x4593a4
jmp 0x4593bb
mov esi, 1
mov eax, dword [ebx]
mov dword [ebx + 4], 0
mov dword [ebx + 8], 5
test esi, esi
je 0x45946d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4593d6
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp + 0x20]
sub eax, edx
mov edx, dword [ebp + 0x1c]
lea esi, [eax + 1]
mov eax, dword [edx]
sub eax, edi
add eax, dword [ecx]
cmp esi, eax
ja 0x459409
mov eax, dword [ebx]
push esi
push eax
push edi
call fcn.004905c0
add esp, 0xc
add edi, esi
mov dword [ebp - 0x58], edi
jmp 0x45946d
cmp esi, 0x1001
jae 0x459435
cmp dword [ebp - 0x40], 0x9c40
jae 0x459435
mov eax, esi
call fcn.00491970
mov ecx, dword [ebx]
mov eax, esp
push esi
push ecx
push eax
call fcn.004905c0
add esp, 0xc
add dword [ebp - 0x40], esi
jmp 0x45946d
cmp dword [ebp - 0x28], 0xc8
je 0x45a7c7
push esi
call fcn.00488777
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [ebp + edx*4 - 0x4bc], eax
test eax, eax
je 0x45a7c7
mov ecx, dword [ebx]
push esi
push ecx
push eax
call fcn.004905c0
add esp, 0xc
inc dword [ebp - 0x28]
mov dword [ebx], eax
lea eax, [ebp - 0x6c]
mov dword [ebp - 4], 0xffffffff
call fcn.0045b2f0
jmp 0x45a539
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x6c]
mov dword [ebx + 0xc], edi
test eax, eax
je 0x45a539
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x68]
push edx
push eax
call fcn.004789a0
add esp, 0xc
jmp 0x45a539
cmp eax, 0x20
jne 0x4594f1
cmp dword [ebx + 0xc], 0
je 0x45a734
test edi, edi
je 0x45a734
mov eax, dword [ebp + edi*4 - 0xcc0]
mov ecx, dword [eax]
dec edi
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 [esi + 0xc]
mov dword [ebp - 0x1c], edi
mov dword [ebx + 0xc], eax
jmp 0x45a543
test edi, edi
je 0x458e22
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp + edx*4 - 0xcc0]
dec edx
cmp dword [edi + 8], 8
mov dword [ebp - 0x1c], edx
jge 0x458e22
cmp eax, 0x21
jne 0x45954c
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x458e22
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 0x45a539
add eax, 0xffffffee
cmp eax, 0x2a
ja case.0x45955b.20
movzx eax, byte [eax + 0x45ab7c]
jmp dword [eax*4 + 0x45ab74]
push edi
call fcn.0044f280
mov edx, dword [ebp - 0x1c]
mov esi, eax
add esp, 4
mov dword [ebp - 0x7c], esi
jmp 0x459578
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebx + 8]
lea ecx, [eax - 9]
mov dword [ebp - 0x5c], 0
cmp ecx, 0x37
ja case.0x459595.11
movzx ecx, byte [ecx + 0x45abc4]
jmp dword [ecx*4 + 0x45aba8]
mov eax, esi
mov esi, edi
call fcn.0044f1b0
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], 1
jmp 0x45a539
mov eax, esi
mov esi, edi
call fcn.0044f1b0
test eax, eax
jne 0x459fbd
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
jmp 0x45a539
cmp esi, 1
jne 0x459600
push esi
mov ecx, edi
call fcn.0044f3d0
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 0x45a539
cmp esi, 2
jne 0x4597c2
push 1
push 0
mov eax, edi
call fcn.0044f460
fchs
fstp qword [ebx]
add esp, 8
mov dword [ebx + 8], esi
jmp 0x45a539
mov ecx, dword [edi + 8]
xor edx, edx
cmp eax, 0x3f
setge dl
mov dword [ebp - 0x48], edx
cmp ecx, 4
jne 0x4597c2
test esi, esi
je 0x4596ee
cmp eax, 9
je 0x459653
mov dword [ebp - 0x18], 0xffffffff
cmp eax, 0x3f
jne 0x45965a
mov dword [ebp - 0x18], 1
push 1
cmp esi, 1
jne 0x459685
mov ecx, edi
call fcn.0044f3d0
mov dword [ebx], eax
mov eax, dword [ebp - 0x18]
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.00414e40
jmp 0x45969e
push 0
mov eax, edi
call fcn.0044f460
fst qword [ebx]
fiadd dword [ebp - 0x18]
mov ecx, dword [edi]
fstp qword [esp]
push ecx
call fcn.00414e70
cmp dword [ebp - 0x48], 0
je 0x45961b
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x4596b7
mov edx, dword [edi + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
jne 0x4596c9
mov dword [ebx], edi
mov dword [ebx + 8], 4
jmp 0x45a539
cmp esi, 1
jne 0x4596df
mov eax, dword [ebp - 0x18]
cdq
add dword [ebx], eax
mov dword [ebx + 8], esi
adc dword [ebx + 4], edx
jmp 0x45a539
fild dword [ebp - 0x18]
mov dword [ebx + 8], esi
fadd qword [ebx]
fstp qword [ebx]
jmp 0x45a539
cmp ecx, 4
jne 0x4597c2
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x459704
mov ecx, dword [eax + 0xc]
jmp 0x459706
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x459711
call fcn.004303a0
mov ecx, dword [edi]
call fcn.00414de0
cmp dword [ebp - 0x48], 0
je 0x4597c2
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x459731
mov eax, dword [edi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x4597c2
mov dword [ebx], edi
mov dword [ebx + 8], 4
jmp 0x45a539
mov eax, dword [edi + 8]
cmp eax, 4
jne 0x4597a5
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x45975c
mov ecx, dword [eax + 0xc]
jmp 0x45975e
mov ecx, eax
test byte [ecx + 0x15], 2
je 0x459783
mov dword [ebx + 8], 1
mov edi, dword [edi]
cmp byte [edi + 0x17], 0
jne 0x459776
mov edi, dword [edi + 0xc]
mov eax, dword [edi]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45a539
call fcn.00414ea0
push 0
mov dword [ebx + 8], 1
mov ecx, dword [edi]
push 1
call fcn.00401270
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45a539
cmp eax, 6
jne 0x4597c2
mov dword [ebx + 8], 1
mov eax, dword [edi]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45a539
test esi, esi
jne 0x4597d4
mov dword [ebx], 0x49b8cd
mov dword [ebx + 8], 0
jmp 0x45a539
xor ecx, ecx
cmp esi, 1
sete cl
push ecx
mov ecx, edi
call fcn.0044f3d0
add esp, 4
cmp dword [ebx + 8], 0x3b
jne 0x459824
test edx, edx
ja 0x45980f
jb 0x4597f8
cmp eax, 0xffffffff
ja 0x45980f
not eax
mov dword [ebx + 4], 0
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45a539
not eax
not edx
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45a539
cmp eax, 0x1000
jae 0x45983f
xor eax, eax
cdq
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45a539
movzx eax, byte [eax]
cdq
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x45a539
test edx, edx
je 0x458e22
dec edx
mov dword [ebp - 0x1c], edx
lea edx, [ebp + edx*4 - 0xcbc]
mov dword [ebp - 0x50], edx
mov edx, dword [edx]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x30], edx
cmp ecx, 8
jge 0x458e22
cmp eax, 0x12
jne 0x4598b8
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 0x45a539
mov eax, dword [ebx]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
jmp 0x45a539
cmp eax, 0x1f
jg 0x4599c1
cmp eax, 0x13
jl 0x4599c1
cmp ecx, 4
je 0x4598e1
mov dword [ebx], 0x49b8cd
mov dword [ebx + 8], 0
jmp 0x45a539
add eax, 0xffffffed
cmp eax, 0xc
ja case.default.0x4598ed
jmp dword [eax*4 + 0x45abfc]
mov esi, dword [ebp - 0x30]
mov ebx, dword [esi]
mov eax, edi
call fcn.004779f0
test eax, eax
je 0x45a9ba
mov ecx, dword [esi]
mov al, byte [ecx + 0x17]
test al, al
jne 0x459917
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
mov ebx, dword [ebp - 0x18]
cmp al, 2
mov eax, ebx
jne 0x459944
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 0x45a539
mov dword [eax], ecx
mov dword [eax + 8], 4
jmp 0x45a539
mov dword [ebx + 8], 0x34
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x35
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x36
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x37
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x38
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x2e
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x2f
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x30
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x31
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x32
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x33
jmp case.default.0x4598ed
mov dword [ebx + 8], 0x2d
mov eax, dword [edx]
mov dword [ebp - 0x5c], eax
cmp dword [ebx + 8], 0x2d
je 0x459f64
test esi, esi
je 0x459f64
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0044f280
add esp, 4
mov dword [ebp - 0x48], eax
test eax, eax
je 0x459f64
cmp esi, 1
jne 0x4599f9
cmp eax, esi
jne 0x4599f9
cmp dword [ebx + 8], 0x37
jne 0x459a0e
mov eax, dword [ebx + 8]
cmp eax, 0x33
jg 0x459d0d
cmp eax, 0x2e
jl 0x459d0d
xor edx, edx
cmp esi, 1
sete dl
mov ecx, edi
push edx
call fcn.0044f3d0
mov ecx, dword [ebp - 0x30]
mov edi, eax
xor eax, eax
add esp, 4
cmp dword [ebp - 0x48], 1
mov esi, edx
sete al
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], esi
push eax
call fcn.0044f3d0
mov ecx, dword [ebx + 8]
add ecx, 0xffffffdb
add esp, 4
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x14], 1
cmp ecx, 0x19
ja case.0x459a68.45
jmp dword [ecx*4 + 0x45ac30]
add eax, edi
adc edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
sub eax, edi
sbb edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
push esi
push edi
push edx
push eax
call fcn.0048ec80
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
cmp eax, edi
jne 0x459acf
cmp edx, esi
jne 0x459acf
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
mov edx, dword [ebp - 0x14]
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
cmp eax, edi
jne 0x459aeb
cmp edx, esi
je 0x459acf
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
cmp edx, esi
jl 0x459acf
jg 0x459b0c
cmp eax, edi
jbe 0x459acf
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
cmp edx, esi
jg 0x459acf
jl 0x459b2d
cmp eax, edi
jae 0x459acf
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
cmp edx, esi
jl 0x459acf
jg 0x459b4e
cmp eax, edi
jb 0x459acf
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
cmp edx, esi
jg 0x459acf
jl 0x459b77
cmp eax, edi
ja 0x459acf
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
and eax, edi
and edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
or eax, edi
or edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
xor eax, edi
xor edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
mov ecx, edi
call fcn.004974a0
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
mov ecx, edi
call fcn.00497470
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
mov ecx, edi
call fcn.00495280
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
mov ecx, edi
or ecx, dword [ebp - 0x88]
jne 0x459c2c
mov edx, ecx
mov dword [ebx], 0x49b8cd
mov dword [ebp - 0x14], ecx
mov dword [ebx + 8], edx
jmp 0x45a501
mov ecx, dword [ebp - 0x88]
push ecx
push edi
push edx
push eax
call fcn.00496a60
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], eax
mov dword [ebx + 8], edx
jmp 0x45a501
mov ecx, eax
or ecx, edx
jne 0x459c73
test esi, esi
jg 0x459ccf
jl 0x459c5b
test edi, edi
jae 0x459ccf
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x14]
mov dword [ebx], 0x49b8cd
mov dword [ebx + 8], edx
jmp 0x45a501
test edx, edx
jg 0x459ccf
jl 0x459c7d
test eax, eax
jae 0x459ccf
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], edx
fild qword [ebp - 0x8c]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x94]
fstp qword [esp]
call fcn.004312c0
cmp dword [ebp - 0x48], 0
fst qword [ebx]
je 0x459cd8
push 0
push 2
push esi
push edi
call fcn.004974c0
or eax, edx
je 0x459cd8
fchs
fstp qword [ebx]
jmp 0x459cda
mov dword [ebp - 0x48], 0
jmp 0x459c97
fstp st(0)
test esi, esi
jg 0x459cf6
jl 0x459ce4
test edi, edi
jae 0x459cf6
mov dword [ebp - 0x14], 2
mov edx, dword [ebp - 0x14]
mov dword [ebx + 8], edx
jmp 0x45a501
fld qword [ebx]
call fcn.004969e6
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov edx, dword [ebp - 0x14]
mov dword [ebx + 8], edx
jmp 0x45a501
xor eax, eax
cmp esi, 2
sete al
push eax
push 1
mov eax, edi
call fcn.0044f460
fstp qword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp dword [ebp - 0x48], 2
sete cl
push ecx
push 1
call fcn.0044f460
fst qword [ebp - 0x4c]
mov ecx, dword [ebx + 8]
add esp, 0x10
cmp ecx, 0x25
jl 0x459d4e
mov edi, 1
cmp ecx, 0x2c
jle 0x459d53
mov edi, 2
lea eax, [ecx - 0x25]
cmp eax, 0x19
ja case.0x459d62.45
movzx edx, byte [eax + 0x45acc8]
jmp dword [edx*4 + 0x45ac98]
fadd qword [ebp - 0x3c]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45a501
fsub qword [ebp - 0x3c]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45a501
fmul qword [ebp - 0x3c]
mov dword [ebx + 8], edi
fstp qword [ebx]
jmp 0x45a501
fld qword [ebp - 0x3c]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x459db4
fstp st(1)
mov dword [ebx], 0x49b8cd
xor edi, edi
fstp st(0)
mov dword [ebx + 8], edi
jmp 0x45a501
fdivp st(1)
fst qword [ebx]
cmp ecx, 0x38
jne case.0x459d62.45
sub esp, 8
fstp qword [esp]
call fcn.00431320
fstp qword [ebx]
mov dword [ebx + 8], edi
jmp 0x45a501
fld qword [ebp - 0x3c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x459df2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45a501
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45a501
fld qword [ebp - 0x3c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x459df2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45a501
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 0x41
jne 0x459df2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45a501
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 5
jp 0x459df2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45a501
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 1
jne 0x459df2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45a501
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 0x41
jp 0x459df2
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edi
jmp 0x45a501
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x459eb1
mov esi, 1
jmp 0x459eb3
xor esi, esi
fld st(1)
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x459edc
fcomp qword [ebp - 0x3c]
fnstsw ax
test ah, 0x41
jne 0x459ede
fstp st(0)
xor edi, edi
mov dword [ebx], 0x49b8cd
mov dword [ebx + 8], edi
jmp 0x45a501
fstp st(0)
test esi, esi
je 0x459f08
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x3c]
fstp qword [esp]
call fcn.00431350
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x459ecc
fld qword [ebp - 0x4c]
fchs
fld qword [ebp - 0x3c]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.004312c0
fstp qword [ebx]
test esi, esi
je 0x459dac
fld qword [0x4a3fe0]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x3c]
fstp qword [esp]
call fcn.00431350
sub esp, 8
fstp qword [esp]
call fcn.004312b0
fld1
fucompp
fnstsw ax
test ah, 0x44
jp 0x459dac
fld qword [ebx]
mov dword [ebx + 8], edi
fchs
fstp qword [ebx]
jmp 0x45a501
mov eax, dword [ebx + 8]
add eax, 0xffffffdb
cmp eax, 3
ja 0x459fd2
mov ecx, edi
call fcn.0044f670
mov ecx, dword [ebp - 0x30]
mov esi, eax
call fcn.0044f670
test esi, esi
jne 0x459f88
test eax, eax
je 0x459fd2
mov ecx, dword [ebx + 8]
cmp ecx, 0x27
je 0x459f9c
cmp ecx, 0x28
je 0x459f9c
mov ecx, 1
jmp 0x459f9e
xor ecx, ecx
xor edx, edx
cmp esi, eax
sete dl
cmp ecx, edx
jne 0x459fbd
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
jmp 0x45a539
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], 1
jmp 0x45a539
lea ecx, [ebp - 0xdbc]
mov eax, edi
call fcn.0044f510
mov esi, eax
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x19c]
mov dword [ebp - 0x48], esi
call fcn.0044f510
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 8]
add eax, 0xffffffdb
mov dword [ebp - 0x14], 1
cmp eax, 8
ja case.default.0x45a00b
jmp dword [eax*4 + 0x45ace4]
mov eax, dword [0x4aa988]
cmp byte [eax + 0xd2], 0
push esi
jne 0x45a02f
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004883a1
add esp, 8
jmp 0x45a039
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x45a04e
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45a4fb
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45a4fb
mov eax, dword [ebp - 0x24]
push esi
push eax
call fcn.004884f1
add esp, 8
test eax, eax
jne 0x45a04e
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45a4fb
mov ecx, dword [ebp - 0x24]
push esi
push ecx
call fcn.004884f1
add esp, 8
neg eax
sbb eax, eax
neg eax
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45a4fb
mov edx, dword [0x4aa988]
mov al, byte [edx + 0xd2]
push esi
test al, al
jne 0x45a0b8
mov eax, dword [ebp - 0x24]
push eax
call fcn.004883a1
jmp 0x45a0e3
cmp al, 2
jne 0x45a0da
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45a4fb
mov edx, dword [ebp - 0x24]
push edx
call fcn.004884f1
xor ecx, ecx
add esp, 8
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45a4fb
mov edx, dword [0x4aa988]
mov al, byte [edx + 0xd2]
push esi
test al, al
jne 0x45a116
mov eax, dword [ebp - 0x24]
push eax
call fcn.004883a1
jmp 0x45a12f
cmp al, 2
jne 0x45a126
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x45a132
mov edx, dword [ebp - 0x24]
push edx
call fcn.004884f1
add esp, 8
test eax, eax
jle 0x45a04e
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45a4fb
mov eax, dword [0x4aa988]
mov al, byte [eax + 0xd2]
push esi
test al, al
jne 0x45a166
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004883a1
jmp 0x45a17f
cmp al, 2
jne 0x45a176
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x45a182
mov eax, dword [ebp - 0x24]
push eax
call fcn.004884f1
add esp, 8
test eax, eax
jns 0x45a04e
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45a4fb
mov ecx, dword [0x4aa988]
mov al, byte [ecx + 0xd2]
push esi
test al, al
jne 0x45a1b7
mov edx, dword [ebp - 0x24]
push edx
call fcn.004883a1
jmp 0x45a1d0
cmp al, 2
jne 0x45a1c7
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x45a1d3
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004884f1
add esp, 8
cmp eax, 0xffffffff
jle 0x45a04e
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45a4fb
mov edx, dword [0x4aa988]
mov al, byte [edx + 0xd2]
push esi
test al, al
jne 0x45a209
mov eax, dword [ebp - 0x24]
push eax
call fcn.004883a1
jmp 0x45a222
cmp al, 2
jne 0x45a219
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x45a225
mov edx, dword [ebp - 0x24]
push edx
call fcn.004884f1
add esp, 8
cmp eax, 1
jge 0x45a04e
mov eax, 1
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x45a4fb
cmp dword [edi + 8], 4
jne 0x45a24e
mov eax, dword [edi]
call fcn.00415290
jmp 0x45a25c
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a253
sub eax, edx
cmp dword [ebp - 0x5c], 0
mov dword [ebp - 0x14], eax
je 0x45a284
push eax
mov eax, dword [ebp - 0x5c]
push esi
call fcn.00478710
test eax, eax
je 0x45a284
mov ecx, dword [ebp - 0x5c]
mov dword [ebx], ecx
mov dword [ebx + 8], 4
jmp 0x45a539
mov edx, dword [ebp - 0x30]
cmp dword [edx + 8], 4
jne 0x45a298
mov eax, edx
mov eax, dword [eax]
call fcn.00415290
jmp 0x45a2a9
mov eax, dword [ebp - 0x24]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a2a0
sub eax, edx
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x14]
lea edx, [eax + ecx + 1]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x70], edx
jne 0x45a42e
mov esi, dword [ebp - 0x74]
test esi, esi
je 0x45a2df
cmp dword [ebp - 0x1c], 0
jne 0x45a2df
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x18], 0x44
jne 0x45a2df
mov dword [ebp - 0x50], 1
jmp 0x45a324
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x18], 0x13
jne 0x45a42e
cmp dword [ebp - 0x1c], 0
je 0x45a42e
mov edx, dword [ebp - 0x50]
mov eax, dword [edx - 4]
cmp dword [eax + 8], 4
jne 0x45a42e
mov esi, dword [eax]
mov al, byte [esi + 0x17]
test al, al
jne 0x45a315
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x45a42e
mov dword [ebp - 0x50], 0
test esi, esi
je 0x45a42e
push 0
push 0
mov ecx, esi
call fcn.00401270
cmp eax, 0x4af24d
jne 0x45a340
xor eax, eax
cmp eax, dword [ebp - 0x24]
jne 0x45a393
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x48]
push ecx
push edx
mov eax, esi
call fcn.00478710
test eax, eax
je 0x45a42e
cmp dword [ebp - 0x50], 0
jne case.0x45a8c8.3
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0xcc0]
mov edx, dword [ecx]
dec eax
mov dword [ebp - 0x1c], eax
mov dword [ebx], edx
mov dword [ebx + 8], 4
jmp 0x45a539
cmp eax, dword [ebp - 0x48]
je 0x45a42e
mov eax, dword [ebp - 0x70]
push 1
push 0
dec eax
push eax
push 0
push esi
call fcn.004780a0
test eax, eax
je 0x45a9ba
push 0
push 1
mov ecx, esi
call fcn.00401270
mov edi, eax
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x45a3da
mov ecx, dword [ebp - 0x24]
push eax
push ecx
push edi
call fcn.004905c0
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
inc edx
push edx
push ecx
add eax, edi
push eax
call fcn.004905c0
add esp, 0xc
push 0
mov eax, esi
call fcn.004152f0
cmp dword [ebp - 0x50], 0
jne case.0x45a8c8.3
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + 0x1c]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebx + 0xc], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + eax*4 - 0xcbc]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov dword [ebx + 8], 4
jmp 0x45a539
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 0x20]
sub edx, eax
add edx, dword [ecx]
mov ecx, dword [ebp - 0x70]
cmp ecx, edx
ja 0x45a44d
mov dword [ebx], eax
add eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x45a4a1
cmp ecx, 0x1001
jae 0x45a471
cmp dword [ebp - 0x40], 0x9c40
jae 0x45a471
mov esi, dword [ebp - 0x70]
mov eax, esi
call fcn.00491970
add dword [ebp - 0x40], esi
mov eax, esp
mov dword [ebx], eax
jmp 0x45a4a1
mov esi, dword [ebp - 0x28]
cmp esi, 0xc8
je 0x45a9a6
mov edx, dword [ebp - 0x70]
push edx
call fcn.00488777
add esp, 4
mov dword [ebp + esi*4 - 0x4bc], eax
mov dword [ebx], eax
test eax, eax
je 0x45a9a6
inc esi
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x45a4b8
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebx]
push esi
push eax
push ecx
call fcn.004905c0
add esp, 0xc
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebx]
inc edx
push edx
push eax
add ecx, esi
push ecx
call fcn.004905c0
mov edx, dword [ebp - 0x30]
xor eax, eax
add esp, 0xc
cmp dword [edx + 8], eax
je 0x45a4e9
cmp dword [edi + 8], eax
je 0x45a4e9
mov dword [ebp - 0x14], 5
mov dword [ebx + 4], eax
jmp 0x45a4fb
mov dword [ebp - 0x14], eax
jmp 0x45a4fb
mov dword [ebx], 0x49b8cd
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
mov dword [ebx + 8], eax
cmp dword [ebp - 0x5c], 0
je 0x45a539
mov eax, ebx
mov ebx, dword [ebp - 0x5c]
call fcn.004779f0
test eax, eax
je 0x45a9ba
mov al, byte [ebx + 0x17]
test al, al
jne 0x45a526
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 2
je 0x45a536
mov eax, dword [ebp - 0x18]
mov dword [eax], ebx
mov dword [eax + 8], 4
mov ebx, dword [ebp - 0x18]
cmp dword [ebx + 0xc], 0
je 0x45a6dd
push ebx
call fcn.0044f280
add esp, 4
dec eax
je 0x45a62c
dec eax
mov eax, dword [ebx + 8]
je 0x45a590
cmp eax, 6
je 0x45a6d3
cmp eax, 4
jne 0x45a57c
mov eax, dword [ebx]
cmp byte [eax + 0x17], 0
jne 0x45a572
mov eax, dword [eax + 0xc]
test byte [eax + 0x15], 2
jne 0x45a6d3
xor ecx, ecx
mov eax, ebx
call fcn.0044f510
xor edx, edx
cmp byte [eax], dl
setne dl
mov esi, edx
jmp 0x45a5d7
dec eax
cmp eax, 5
ja case.0x45a596.3
jmp dword [eax*4 + 0x45ad08]
fild qword [ebx]
jmp 0x45a5c6
fld qword [ebx]
jmp 0x45a5c6
mov eax, dword [ebx]
push 1
call fcn.00415000
jmp 0x45a5c6
mov eax, dword [ebx + 4]
test eax, eax
je case.0x45a596.3
fild qword [eax]
jmp 0x45a5c6
mov eax, dword [ebx]
push eax
call fcn.0048a250
add esp, 4
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45a6d3
xor esi, esi
cmp dword [ebx + 8], 6
jne 0x45a5e7
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 0x45a727
xor edx, edx
cmp dword [ecx + 8], 0x22
sete dl
cmp esi, edx
jne 0x45a72e
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x45a615
cmp dword [ecx + 8], 0x21
jne 0x45a5f4
mov eax, esi
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], ecx
jmp 0x45a539
mov eax, dword [ebx + 8]
dec eax
cmp eax, 5
ja case.0x45a635.3
jmp dword [eax*4 + 0x45ad20]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x45a6cb
mov ecx, dword [ebx + 4]
test ecx, ecx
je case.0x45a635.3
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x45a6cb
fld qword [ebx]
call fcn.004969e6
jmp 0x45a6cb
mov eax, dword [ebx]
push 1
call fcn.00414f80
jmp 0x45a6cb
mov esi, dword [ebx]
mov eax, esi
lea esp, [esp]
mov cl, byte [eax]
cmp cl, 0x20
je 0x45a67c
cmp cl, 9
jne 0x45a67f
inc eax
jmp 0x45a670
mov cl, byte [eax]
test cl, cl
je 0x45a6c2
cmp cl, 0x2d
je 0x45a68f
cmp cl, 0x2b
jne 0x45a690
inc eax
cmp byte [eax], 0x30
jne 0x45a6c2
mov cl, byte [eax + 1]
cmp cl, 0x78
je 0x45a6a2
cmp cl, 0x58
jne 0x45a6c2
movsx ecx, byte [eax + 2]
push ecx
call fcn.0048993a
add esp, 4
test eax, eax
je 0x45a6c2
push 0x10
push 0
push esi
call fcn.0048a14e
add esp, 0xc
jmp 0x45a6cb
push esi
call fcn.00489681
add esp, 4
or eax, edx
je case.0x45a635.6
mov esi, 1
jmp 0x45a5d7
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x1c]
cmp edi, esi
jle 0x45a70c
jmp 0x45a6f0
mov eax, dword [ebp + edi*4 - 0xcc0]
dec edi
cmp dword [eax + 8], 6
jne 0x45a708
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp edi, esi
jg 0x45a6f0
inc esi
mov dword [ebp + esi*4 - 0xcc0], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x60], esi
mov edi, esi
mov esi, dword [ebp - 0x20]
add esi, 0x10
jmp 0x458bd4
test esi, esi
jne 0x45a72e
mov dword [ebp - 0x20], ecx
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
add esi, 0x10
jmp 0x458bd4
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x18]
push edx
push edi
jmp 0x45a9ad
cmp dword [esi], 1
je 0x45a754
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x6c]
test eax, eax
je case.0x45a8c8.3
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x68]
push edx
push eax
call fcn.004789a0
add esp, 0xc
jmp case.0x45a8c8.3
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x45a78c
push ebx
call fcn.004883b8
add esp, 4
lea eax, [ebp - 0x6c]
mov dword [ebp - 4], 0xffffffff
call fcn.0045b2f0
jmp case.0x45a8c8.3
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
push edx
push 0
push str.Out_of_memory.
call fcn.0042faa0
lea eax, [ebp - 0x6c]
mov dword [ebp - 4], 0xffffffff
call fcn.0045b2f0
jmp 0x45a9ba
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.
call fcn.0042faa0
lea eax, [ebp - 0x6c]
mov dword [ebp - 4], 0xffffffff
call fcn.0045b2f0
jmp 0x45a9ba
mov edx, dword [ebp + 8]
mov cl, byte [edx]
cmp cl, 3
je case.0x45a8c8.3
cmp dword [ebp - 0x1c], 1
jne 0x458e22
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0xcbc]
mov dword [ebp - 0x7c], eax
test ebx, ebx
je 0x45a82b
call fcn.004779f0
test eax, eax
je 0x45a9ba
jmp case.0x45a8c8.3
cmp cl, 0x11
je 0x45aa8a
cmp cl, 0x6b
je 0x45aa8a
cmp cl, 0x6c
je 0x45aa8a
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x45a8b4
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x45a89d
cmp ecx, 2
je 0x45a89d
cmp ecx, 6
je 0x45a89d
cmp ecx, 4
jne 0x45a8b4
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x45a86f
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x45a8b4
mov dword [edx + 8], 6
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x45a887
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, 0x49b8cd
jmp 0x45aaf1
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, 0x49b8cd
jmp 0x45aaf1
mov edi, dword [ebp + 0x18]
mov ecx, dword [edi]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x45a8c8.3
jmp dword [ecx*4 + 0x45ad38]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [ebp - 0x2c]
push edx
push eax
call fcn.004010b0
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a8e4
sub eax, edx
lea ecx, [eax + 1]
mov eax, dword [ebp + 0x18]
add dword [eax], ecx
jmp case.0x45a8c8.3
mov edx, dword [0x4aa988]
fld qword [eax]
mov edi, dword [ebp - 0x2c]
sub esp, 8
add edx, 0x74
fstp qword [esp]
push edx
mov esi, 0x100
call fcn.00474f40
lea ecx, [eax + 1]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add dword [eax], ecx
jmp case.0x45a8c8.3
cmp ecx, 4
jne 0x45a94a
mov ecx, dword [eax]
push 0
push 1
call fcn.00401270
mov edx, dword [ebp - 0x7c]
mov esi, eax
mov dword [ebp + 0x14], eax
mov eax, dword [edx]
call fcn.00415290
jmp 0x45a95d
mov esi, dword [eax]
mov eax, esi
mov dword [ebp + 0x14], esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a954
sub eax, edx
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 0x45a97c
mov eax, ecx
mov edx, dword [ebp + 0x28]
lea eax, [eax + edx + 1]
cmp ebx, eax
jbe 0x45aa75
mov ecx, dword [ebp + 0x20]
mov esi, dword [ecx]
sub esi, eax
add esi, ebx
push esi
mov dword [ebp + 0x28], esi
call fcn.00488777
mov edi, eax
add esp, 4
test edi, edi
jne 0x45a9cf
push 0x49b8cd
push 0
mov ecx, dword [ebp + 8]
push str.Out_of_memory.
call fcn.0042faa0
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], 0
mov dword [edx], 0
jmp case.0x45a8c8.3
cmp esi, 0x400000
jbe 0x45a9dd
inc dword [0x4af204]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax]
mov esi, dword [ecx]
sub esi, eax
je 0x45a9f6
push esi
push eax
push edi
call fcn.004905c0
add esp, 0xc
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
lea eax, [esi + edi]
push ebx
push ecx
push eax
mov dword [edx], eax
mov dword [ebp - 0x2c], eax
call fcn.004905c0
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
add esp, 0xc
push eax
call fcn.004883b8
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx]
add esp, 4
cmp eax, 0x400000
jbe 0x45aa2f
dec dword [0x4af204]
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx]
add eax, edx
mov dword [ebp + 8], eax
xor eax, eax
cmp dword [ebp + 0xc], eax
jle 0x45aa61
mov ecx, dword [ebp + 0x24]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
jb 0x45aa5b
cmp ecx, dword [ebp + 8]
jae 0x45aa5b
mov esi, edi
sub esi, edx
add esi, ecx
mov ecx, dword [ebp + 0x24]
mov dword [ecx + eax*4], esi
inc eax
cmp eax, dword [ebp + 0xc]
jl 0x45aa40
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x20]
mov dword [edx], edi
mov edi, dword [ebp + 0x18]
add dword [edi], ebx
mov dword [ecx], eax
jmp case.0x45a8c8.3
mov eax, dword [edi]
cmp eax, esi
je 0x45aa86
push ebx
push esi
push eax
call fcn.00488cd0
add esp, 0xc
add dword [edi], ebx
jmp case.0x45a8c8.3
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x45aa96.3
jmp dword [ecx*4 + 0x45ad54]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x45aa96.6
mov dword [ebp - 0x2c], 0x49b8cd
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x45aacb
mov eax, dword [ebp + esi*4 - 0x4c0]
dec esi
push eax
call fcn.004883b8
add esp, 4
test esi, esi
jne 0x45aab6
mov esi, dword [ebp - 0x60]
test esi, esi
je 0x45aaee
mov eax, dword [ebp + esi*4 - 0xcc0]
dec esi
cmp dword [eax + 8], 6
jne 0x45aaea
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
jne 0x45aad2
mov eax, dword [ebp - 0x2c]
lea esp, [ebp - 0xdcc]
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.0x45aa96.6
jmp case.0x45a8c8.6
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x45aa96.0
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jmp 0x45aaa2
mov eax, dword [eax]
call fcn.0044f0c0
jmp 0x45ab3f
mov esi, dword [eax]
call fcn.0044f120
jmp 0x45ab3f
mov eax, dword [ebp + 8]
test eax, eax
je case.0x45a8c8.6
mov dword [ebp - 0x2c], 0x49cf30
jmp case.0x45a8c8.3