Function at 0x455b10
Capabilities:
Check http status code
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4938a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdac
mov edx, dword [ebp + 0x14]
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 0x18]
mov eax, dword [esi]
xor ecx, ecx
push edi
mov edi, dword [ebp + 8]
cmp byte [edi], 2
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0xc]
setne cl
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x38], 0x496816
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x3c], ebx
dec ecx
and ecx, dword [0x4a7c78]
add eax, eax
mov dword [ebp - 0x64], ecx
mov ecx, dword [edi + 8]
mov edi, dword [ecx + eax*8 + 0xc]
lea eax, [ecx + eax*8 + 0xc]
cmp dword [edi + 8], 0x41
mov dword [ebp - 0x20], edi
je 0x4575e4
mov eax, 0x10
call fcn.0048f760
mov edx, dword [edi]
mov esi, esp
mov dword [esi], edx
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov ecx, dword [edi + 8]
mov dword [esi + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0xc], edx
mov eax, dword [esi + 8]
cmp eax, 8
jge 0x456012
cmp eax, 7
jne 0x456b89
mov edx, dword [esi + 4]
xor ebx, ebx
cmp edx, ebx
je 0x455e56
mov eax, dword [esi]
mov dword [esi], 0x496816
mov dword [esi + 8], ebx
mov ecx, dword [eax]
xor edi, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], edx
cmp ecx, edx
jne 0x455c26
movzx ebx, word [eax + 0xa]
cmp byte [ebx + edx], 0
jne 0x455c26
cmp byte [eax + 0x14], 0
je 0x455c26
mov edx, dword [eax + 4]
cmp byte [edx + 0x17], 0
jne 0x455bfc
mov edx, dword [edx + 0xc]
test byte [edx + 0x15], 2
je 0x455c26
mov dword [esi + 8], 6
mov eax, dword [eax + 4]
cmp byte [eax + 0x17], 0
jne 0x455c15
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esi], eax
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
jmp 0x456b89
test ecx, ecx
je 0x455d29
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov ecx, dword [ebp - 0x14]
jae 0x455c52
cmp edi, 0xfd
jae 0x455c5c
mov dl, byte [eax]
mov byte [ebp + edi - 0x194], dl
inc eax
inc edi
cmp eax, dword [ecx]
jb 0x455c38
mov dword [ebp - 0x28], eax
cmp edi, 0xfd
jb 0x455c6a
jmp 0x455c5f
mov dword [ebp - 0x28], eax
cmp eax, dword [ecx]
jb 0x455da3
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx + 0x17]
cmp eax, 3
ja case.default.0x455c76
jmp dword [eax*4 + 0x457994]
mov eax, ebx
call fcn.00401150
cmp dword [0x4a7e44], 0
jne 0x455cbe
cmp dword [ebx + 0xc], 0
jne 0x455cbe
mov ecx, dword [ebx + 0x18]
push 0
lea eax, [ebp - 0x76]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x455cb4
mov dword [0x4aacd0], 0
dec eax
jmp 0x455ced
mov dword [0x4aacd0], ebx
xor eax, eax
jmp 0x455ced
mov eax, dword [ebx + 0xc]
jmp 0x455ced
mov ecx, dword [ebx + 0xc]
push 0
call fcn.00473280
jmp 0x455ced
xor ecx, ecx
call fcn.00403c50
cmp eax, 0xffffffff
jne 0x455ced
xor eax, eax
jmp 0x455ced
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x10]
push edx
push 0
call eax
add esp, 8
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x455da3
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebx + 4]
lea edx, [ebp + edi - 0x194]
push edx
call fcn.00473280
mov ecx, dword [ebx + 0xc]
add edi, eax
movzx eax, word [ebx + 0xa]
add dword [ebp - 0x28], eax
add ebx, 0xc
mov dword [ebp - 0x14], ebx
test ecx, ecx
jne 0x455c2e
mov ecx, dword [ebp - 0x28]
mov al, byte [ecx]
test al, al
je 0x455d49
cmp edi, 0xfd
jae 0x455d51
inc ecx
mov byte [ebp + edi - 0x194], al
mov al, byte [ecx]
inc edi
test al, al
jne 0x455d32
cmp edi, 0xfd
jb 0x455d56
cmp byte [ecx], 0
jne 0x455da3
mov eax, dword [ebp - 0x14]
test edi, edi
jne 0x455d63
cmp byte [eax + 8], 0
je 0x455da6
mov byte [ebp + edi - 0x194], 0
cmp byte [eax + 8], 0
je 0x455df7
lea eax, [edi + 1]
mov dword [esi + 8], 0
call fcn.0048c9c0
mov edi, esp
lea eax, [ebp - 0x194]
mov edx, edi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x455d92
mov dword [esi], edi
jmp 0x456b89
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x455db8
jmp 0x455db0
add eax, 0xc
cmp dword [eax], 0
jne 0x455db0
cmp byte [eax + 8], 0
je 0x456b89
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je case.0x4576b5.3
mov eax, dword [ebp - 0x38]
test eax, eax
je case.0x4576b5.3
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.00472eb0
test eax, eax
jne case.0x4576b5.3
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
jmp case.0x4576b5.3
cmp byte [ebp - 0x194], 0
je 0x4577e9
lea edx, [ebp - 0x5d]
push edx
push 3
lea eax, [ebp - 0x90]
push eax
push edi
lea ecx, [ebp - 0x194]
push ecx
mov ecx, 0x4a9d50
call fcn.00420000
test eax, eax
jne 0x455e52
mov eax, dword [ebp - 0x90]
xor edx, edx
cmp byte [ebp - 0x5d], dl
mov ecx, edi
setne dl
inc edx
push edx
push eax
push 0x4a9d50
lea edx, [ebp - 0x194]
call fcn.00420290
test eax, eax
je 0x4577e9
mov dword [esi], eax
xor ebx, ebx
mov edi, dword [esi]
mov al, byte [edi + 0x17]
test al, al
jne 0x455e65
mov ecx, dword [edi + 0xc]
mov al, byte [ecx + 0x17]
movzx eax, al
mov ecx, 1
sub eax, ecx
je 0x455eb5
sub eax, 3
jne 0x455ee8
mov eax, dword [edi + 0x10]
cmp eax, 0x443b10
jne 0x455e98
mov eax, dword [0x4a4440]
mov edx, dword [eax + 8]
mov dword [esi], edx
mov eax, dword [eax + 0xc]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
jmp 0x456b89
cmp eax, 0x4441b0
jne 0x455ee8
mov edx, dword [0x4a4440]
mov eax, dword [edx + 0x38]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
jmp 0x456b89
cmp dword [0x4a7e44], ebx
jne 0x456b82
cmp byte [edi + 0x17], 0
jne 0x455ecc
mov eax, dword [edi + 0xc]
jmp 0x455ece
mov eax, edi
test byte [eax + 0x15], 0xa
jne 0x456b82
xor ecx, ecx
cmp dword [eax + 0xc], ebx
setne cl
cmp ecx, ebx
jne 0x456b82
movzx eax, byte [edi + 0x17]
cmp eax, 3
ja case.default.0x455ef1
jmp dword [eax*4 + 0x4579a4]
mov eax, edi
call fcn.00401150
cmp dword [0x4a7e44], ebx
jne 0x455f32
cmp dword [edi + 0xc], ebx
jne 0x455f32
mov eax, dword [edi + 0x18]
push ebx
lea edx, [ebp - 0x75]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
cmp eax, ebx
je 0x455f28
mov dword [0x4aacd0], ebx
dec eax
jmp 0x455f5f
mov dword [0x4aacd0], edi
xor eax, eax
jmp 0x455f5f
mov eax, dword [edi + 0xc]
jmp 0x455f5f
mov ecx, dword [edi + 0xc]
push ebx
call fcn.00473280
jmp 0x455f5f
xor ecx, ecx
call fcn.00403c50
cmp eax, 0xffffffff
jne 0x455f5f
xor eax, eax
jmp 0x455f5f
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x10]
push ecx
push ebx
call edx
add esp, 8
lea edi, [eax + 1]
cmp edi, 1
jne 0x455f8d
mov eax, dword [esi]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x455f76
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
je 0x456b82
mov dword [esi], 0x496816
mov dword [esi + 8], ebx
jmp 0x456b89
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x4c]
mov eax, dword [ebp + 0x20]
add edx, dword [eax]
cmp edi, edx
ja 0x455faa
mov eax, dword [ebp - 0x4c]
mov ebx, eax
add eax, edi
mov dword [ebp - 0x4c], eax
jmp 0x455ff5
cmp edi, 0x1001
jae 0x455fc9
cmp dword [ebp - 0x3c], 0x9c40
jae 0x455fc9
mov eax, edi
call fcn.0048c9c0
add dword [ebp - 0x3c], edi
mov ebx, esp
jmp 0x455ff5
mov ebx, dword [ebp - 0x30]
cmp ebx, 0xc8
je 0x457530
push edi
call fcn.004830f9
add esp, 4
mov dword [ebp + ebx*4 - 0x4b4], eax
test eax, eax
je 0x457530
inc dword [ebp - 0x30]
mov ebx, eax
mov ecx, dword [esi]
push ebx
call fcn.00473280
mov dword [esi], ebx
mov dword [esi + 4], 0
mov dword [esi + 8], 5
jmp 0x456b89
cmp eax, 0x3e
jne 0x45640c
mov eax, dword [esi]
mov ecx, dword [eax + 4]
movzx eax, byte [eax + 9]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], eax
cmp eax, ebx
jg 0x455dc2
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
lea ebx, [ebp + eax*4 - 0xcb4]
test ecx, ecx
jne 0x4560d3
test eax, eax
je 0x455dc2
dec eax
mov edi, dword [ebp + eax*4 - 0xcb4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp + eax*4 - 0xcb4]
call fcn.0044ce60
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x4560bc
mov edi, dword [ebp - 0x24]
test edi, edi
je 0x45608f
lea edx, [edi*4]
push edx
lea eax, [ebx + 4]
push ebx
push eax
call fcn.00483b20
add esp, 0xc
inc dword [ebp - 0x48]
mov eax, 0x10
call fcn.0048f760
mov eax, esp
mov dword [ebx], eax
mov dword [eax + 8], 0
mov ecx, dword [ebx]
sub ebx, 4
add edi, 2
mov dword [ecx], 0x496816
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x18], 0x4a5740
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
cmp edx, dword [eax + 0x14]
jge 0x4560d3
mov ecx, dword [esi]
cmp byte [ecx + 8], 2
jne 0x455dc2
mov edi, dword [esi + 0xc]
xor eax, eax
lea edx, [ebp - 0x194]
mov dword [esi + 4], edx
mov dword [ebp - 0x58], edi
mov dword [esi + 0xc], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 4], eax
mov eax, dword [esi]
cmp byte [eax + 8], 2
mov eax, dword [ebp - 0x24]
sete cl
movzx edx, cl
push edx
mov edx, dword [ebp - 0x18]
push eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push ebx
lea ecx, [ebp - 0x70]
push ecx
push edx
call fcn.00457b80
test al, al
je 0x45753b
mov ecx, dword [ebp + 8]
mov dword [0x4aa0c0], ecx
mov eax, dword [esi + 8]
cmp eax, 1
je 0x4563e1
cmp eax, 2
je 0x4563e1
cmp eax, 6
je 0x4563e1
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x45616b
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x41
jne 0x45616b
cmp byte [ecx], 3
mov dword [ebp - 0x24], 1
je 0x45756f
mov ebx, dword [ebp - 0x64]
jmp 0x4561a4
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x13
mov dword [ebp - 0x24], 0
jne 0x4561a2
test eax, eax
je 0x4561a2
lea eax, [ebp + eax*4 - 0xcb4]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 4
jne 0x4561a2
mov ebx, dword [eax]
mov al, byte [ebx + 0x17]
test al, al
jne 0x45619e
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
je 0x4561a4
xor ebx, ebx
mov edi, dword [esi]
test ebx, ebx
je 0x45626e
mov edx, dword [0x4a4440]
mov eax, dword [ebp - 0x18]
cmp dword [edx + 0x94], eax
jne 0x4561ce
mov dl, byte [ebx + 0x16]
and dl, 0x22
cmp dl, 2
je 0x45626e
mov ecx, dword [esi + 0xc]
cmp ecx, edi
jne 0x4561e4
mov eax, dword [esi + 4]
push eax
mov edi, ecx
mov eax, ebx
call fcn.00473590
jmp 0x456235
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4561f0
mov ecx, dword [esi]
sub eax, edx
cmp ecx, dword [0x4a9c90]
jne 0x456220
cmp eax, 0x40
jb 0x456220
push eax
mov edi, ecx
mov eax, ebx
call fcn.00473590
xor eax, eax
mov dword [0x4a9c90], eax
mov dword [0x4a9c94], eax
jmp 0x456235
push 1
push 0
push 0xffffffffffffffff
push ecx
push ebx
call fcn.00472eb0
test eax, eax
je 0x4575a6
cmp dword [ebp - 0x24], 0
jne 0x45757f
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 - 0x70]
mov dword [esi + 0xc], ecx
mov dword [esi], ebx
mov dword [esi + 8], 4
mov dword [ebp - 4], 0xffffffff
call fcn.00457fa0
jmp 0x456b89
mov edx, dword [esi + 0xc]
mov ebx, 1
test edx, edx
je 0x456299
mov eax, dword [ebp - 0x30]
cmp eax, 0xc8
je 0x457593
cmp edx, edi
jne 0x45628e
xor ebx, ebx
mov dword [ebp + eax*4 - 0x4b4], edx
inc eax
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x58]
mov eax, dword [esi]
mov dword [esi + 0xc], edx
cmp byte [eax], 0
jne 0x4562ce
lea eax, [ebp - 0x70]
mov dword [esi], 0x496816
mov dword [esi + 8], 5
mov dword [esi + 4], 0
mov dword [ebp - 4], 0xffffffff
call fcn.00457fa0
jmp 0x456b89
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 0x3d], 0
je 0x4562e5
test ebx, ebx
je 0x456319
xor ebx, ebx
cmp dword [ebp - 0x24], ebx
sete bl
jmp 0x456319
cmp edi, dword [0x4a9c90]
jne 0x456314
xor ebx, ebx
cmp dword [ebp - 0x24], ebx
jne 0x456319
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp eax, 0x41
je 0x456319
cmp eax, 0x3e
je 0x456314
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x41
jne 0x456302
jmp 0x456319
mov ebx, 1
mov eax, dword [esi]
mov dword [esi + 4], 0
mov dword [esi + 8], 5
test ebx, ebx
je 0x4563cb
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456334
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x20]
sub eax, edx
mov edx, dword [ebp + 0x1c]
lea edi, [eax + 1]
mov eax, dword [edx]
sub eax, ebx
add eax, dword [ecx]
cmp edi, eax
ja 0x456367
mov eax, dword [esi]
push edi
push eax
push ebx
call fcn.0048b890
add esp, 0xc
add ebx, edi
mov dword [ebp - 0x4c], ebx
jmp 0x4563cb
cmp edi, 0x1001
jae 0x456393
cmp dword [ebp - 0x3c], 0x9c40
jae 0x456393
mov eax, edi
call fcn.0048c9c0
mov ecx, dword [esi]
mov eax, esp
push edi
push ecx
push eax
call fcn.0048b890
add esp, 0xc
add dword [ebp - 0x3c], edi
jmp 0x4563cb
mov ebx, dword [ebp - 0x30]
cmp ebx, 0xc8
je 0x4575ba
push edi
call fcn.004830f9
add esp, 4
mov dword [ebp + ebx*4 - 0x4b4], eax
test eax, eax
je 0x4575ba
mov ecx, dword [esi]
push edi
push ecx
push eax
call fcn.0048b890
add esp, 0xc
inc ebx
mov dword [ebp - 0x30], ebx
mov dword [esi], eax
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0xffffffff
call fcn.00457fa0
jmp 0x456b89
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x70]
mov dword [esi + 0xc], edi
test eax, eax
je 0x456b89
lea edx, [ebp - 0x68]
push edx
lea ecx, [ebp - 0x6c]
push ecx
push eax
call fcn.004737b0
add esp, 0xc
jmp 0x456b89
cmp eax, 0x1f
jne 0x45644f
cmp dword [esi + 0xc], 0
je 0x45750a
test ebx, ebx
je 0x45750a
mov eax, dword [ebp + ebx*4 - 0xcb8]
mov edx, dword [eax]
dec ebx
mov dword [esi], edx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x1c], ebx
mov dword [esi + 0xc], ecx
jmp 0x456b93
xor edx, edx
cmp ebx, edx
je 0x455dc2
mov edi, dword [ebp + ebx*4 - 0xcb8]
dec ebx
cmp dword [edi + 8], 8
mov dword [ebp - 0x1c], ebx
jge 0x455dc2
cmp eax, 0x20
jne 0x4564a9
mov eax, dword [esi + 0xc]
cmp eax, edx
je 0x455dc2
mov edx, dword [eax + 0xc]
mov dword [edi + 0xc], edx
mov dword [ebp - 0x20], eax
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
mov edx, dword [edi + 8]
mov dword [esi + 8], edx
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov dword [edi + 8], 1
jmp 0x456b89
add eax, 0xffffffee
cmp eax, 0x27
ja case.0x4564b8.20
movzx ecx, byte [eax + 0x4579bc]
jmp dword [ecx*4 + 0x4579b4]
mov eax, edi
call fcn.0044c9d0
mov dword [ebp - 0x2c], eax
xor edx, edx
mov eax, dword [esi + 8]
lea ecx, [eax - 9]
mov dword [ebp - 0x28], edx
cmp ecx, 0x34
ja case.0x4564e4.11
movzx ecx, byte [ecx + 0x457a00]
jmp dword [ecx*4 + 0x4579e4]
mov ecx, dword [ebp - 0x2c]
mov eax, edi
call fcn.0044c910
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], 1
jmp 0x456b89
mov ecx, dword [ebp - 0x2c]
mov eax, edi
call fcn.0044c910
test eax, eax
jne 0x456edd
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x456b89
mov eax, dword [ebp - 0x2c]
cmp eax, 1
jne 0x456557
push eax
mov ecx, edi
call fcn.0044cb10
add esp, 4
neg eax
adc edx, 0
neg edx
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x2c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x456b89
cmp eax, 2
jne 0x456763
push 1
push 0
mov eax, edi
call fcn.0044cba0
fchs
mov edx, dword [ebp - 0x2c]
fstp qword [esi]
add esp, 8
mov dword [esi + 8], edx
jmp 0x456b89
mov ecx, dword [edi + 8]
xor ebx, ebx
cmp eax, 0x3c
setge bl
mov dword [ebp - 0x58], ebx
cmp ecx, 4
jne 0x456869
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x45664b
cmp eax, 9
je 0x4565ae
cmp eax, 0x3c
je 0x4565ae
or ebx, 0xffffffff
jmp 0x4565b3
mov ebx, 1
mov dword [ebp - 0x34], ebx
push 1
cmp edx, 1
jne 0x4565e0
mov ecx, edi
call fcn.0044cb10
mov dword [esi], eax
mov dword [esi + 4], edx
add esp, 4
mov eax, ebx
cdq
add eax, dword [esi]
adc edx, dword [esi + 4]
push edx
push eax
mov eax, dword [edi]
push eax
call fcn.004125a0
jmp 0x4565f9
push 0
mov eax, edi
call fcn.0044cba0
fst qword [esi]
fiadd dword [ebp - 0x34]
mov ecx, dword [edi]
fstp qword [esp]
push ecx
call fcn.004125d0
cmp dword [ebp - 0x58], 0
je 0x456640
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x45660e
mov edx, dword [edi + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
jne 0x456619
mov dword [esi], edi
jmp 0x456b82
mov ecx, dword [ebp - 0x2c]
cmp ecx, 1
jne 0x456631
mov eax, ebx
cdq
add dword [esi], eax
mov dword [esi + 8], ecx
adc dword [esi + 4], edx
jmp 0x456b89
fild dword [ebp - 0x34]
mov dword [esi + 8], ecx
fadd qword [esi]
fstp qword [esi]
jmp 0x456b89
mov eax, dword [ebp - 0x2c]
mov dword [esi + 8], eax
jmp 0x456b89
cmp ecx, 4
jne 0x456869
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x456661
mov ecx, dword [eax + 0xc]
jmp 0x456663
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x45666e
call fcn.0042e090
mov ecx, dword [edi]
call fcn.00412540
test ebx, ebx
je 0x456869
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x45668c
mov ecx, dword [edi + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 1
jne 0x456869
mov dword [esi], edi
jmp 0x456b82
mov eax, dword [edi + 8]
cmp eax, 4
jne 0x456745
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x4566b4
mov ecx, dword [eax + 0xc]
jmp 0x4566b6
mov ecx, eax
test byte [ecx + 0x15], 2
je 0x4566db
mov dword [esi + 8], 1
mov edi, dword [edi]
cmp byte [edi + 0x17], 0
jne 0x4566ce
mov edi, dword [edi + 0xc]
mov eax, dword [edi]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x456b89
call fcn.00403670
mov dword [esi + 8], 1
mov edi, dword [edi]
cmp byte [edi + 0x17], 0
jne 0x4566f2
mov edi, dword [edi + 0xc]
test byte [edi + 0x15], 8
je 0x4566ff
mov eax, edi
call fcn.00401150
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x456721
test byte [edi + 0x15], 4
je 0x456713
mov eax, edi
call fcn.0042e090
mov eax, dword [edi + 8]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x456b89
cmp al, 2
jne 0x456735
call fcn.00401000
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x456b89
mov eax, 0x4a95ee
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x456b89
cmp eax, 6
jne 0x456763
mov dword [esi + 8], 1
mov eax, dword [edi]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x456b89
cmp dword [ebp - 0x2c], edx
jne 0x456771
mov dword [esi], 0x496816
mov dword [esi + 8], edx
jmp 0x456b89
xor edx, edx
mov ebx, 1
cmp dword [ebp - 0x2c], ebx
mov ecx, edi
sete dl
push edx
call fcn.0044cb10
add esp, 4
cmp dword [esi + 8], 0x38
jne 0x4567be
test edx, edx
ja 0x4567ad
jb 0x45679a
cmp eax, 0xffffffff
ja 0x4567ad
not eax
mov dword [esi + 4], 0
mov dword [esi], eax
mov dword [esi + 8], ebx
jmp 0x456b89
not eax
not edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], ebx
jmp 0x456b89
cmp eax, 0x1000
jae 0x4567d5
xor eax, eax
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], ebx
jmp 0x456b89
movzx eax, byte [eax]
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], ebx
jmp 0x456b89
cmp ebx, edx
je 0x455dc2
mov ecx, dword [ebp - 0x1c]
dec ecx
mov ebx, dword [ebp + ecx*4 - 0xcb4]
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp + ecx*4 - 0xcb4]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x50], ebx
cmp ecx, 8
jge 0x455dc2
cmp eax, 0x12
jne 0x456852
mov eax, dword [ebx]
mov dword [esi], eax
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x20]
mov dword [esi + 8], edx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 6
mov edx, dword [ecx + 0xc]
mov dword [esi + 0xc], edx
jne 0x456b89
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
jmp 0x456b89
cmp eax, 0x1e
jg 0x456947
cmp eax, 0x13
jl 0x456947
cmp ecx, 4
je 0x45687b
mov dword [esi], 0x496816
mov dword [esi + 8], 0
jmp 0x456b89
add eax, 0xffffffed
cmp eax, 0xb
ja case.default.0x456887
jmp dword [eax*4 + 0x457a38]
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ecx]
mov eax, edi
call fcn.00472800
test eax, eax
je 0x4577e9
mov edx, dword [ebp - 0x50]
mov eax, dword [edx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x4568b4
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 2
jne 0x4572a0
mov edx, dword [edi]
mov dword [esi], edx
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov ecx, dword [edi + 8]
mov eax, dword [ebp - 0x20]
mov dword [esi + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0xc], edx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xc], ecx
jmp 0x456b89
mov dword [esi + 8], 0x31
jmp case.default.0x456887
mov dword [esi + 8], 0x32
jmp case.default.0x456887
mov dword [esi + 8], 0x33
jmp case.default.0x456887
mov dword [esi + 8], 0x34
jmp case.default.0x456887
mov dword [esi + 8], 0x35
jmp case.default.0x456887
mov dword [esi + 8], 0x2c
jmp case.default.0x456887
mov dword [esi + 8], 0x2d
jmp case.default.0x456887
mov dword [esi + 8], 0x2e
jmp case.default.0x456887
mov dword [esi + 8], 0x2f
jmp case.default.0x456887
mov dword [esi + 8], 0x30
jmp case.default.0x456887
mov dword [esi + 8], 0x2b
mov edx, dword [ebx]
mov dword [ebp - 0x28], edx
cmp dword [esi + 8], 0x2b
je 0x456e8e
cmp dword [ebp - 0x2c], 0
je 0x456e8e
mov eax, ebx
call fcn.0044c9d0
mov dword [ebp - 0x34], eax
test eax, eax
je 0x456e8e
mov eax, 1
cmp dword [ebp - 0x2c], eax
jne 0x456982
cmp dword [ebp - 0x34], eax
jne 0x456982
cmp dword [esi + 8], 0x34
jne 0x456997
mov eax, dword [esi + 8]
cmp eax, 0x30
jg 0x456c37
cmp eax, 0x2c
jl 0x456c37
xor eax, eax
cmp dword [ebp - 0x2c], 1
mov ecx, edi
sete al
push eax
call fcn.0044cb10
xor ecx, ecx
add esp, 4
cmp dword [ebp - 0x34], 1
mov ebx, eax
sete cl
mov edi, edx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], edi
push ecx
mov ecx, dword [ebp - 0x50]
call fcn.0044cb10
mov ecx, dword [esi + 8]
add ecx, 0xffffffdc
add esp, 4
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x18], 1
cmp ecx, 0x17
ja case.0x4569ef.43
jmp dword [ecx*4 + 0x457a68]
add eax, ebx
adc edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
sub eax, ebx
sbb edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
push edi
push ebx
push edx
push eax
call fcn.00489f20
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
cmp eax, ebx
jne 0x456a3e
cmp edx, edi
jne 0x456a3e
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x4569ef.43
xor eax, eax
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x4569ef.43
cmp eax, ebx
jne 0x456a54
cmp edx, edi
je 0x456a3e
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x4569ef.43
cmp edx, edi
jl 0x456a3e
jg 0x456a6f
cmp eax, ebx
jbe 0x456a3e
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x4569ef.43
cmp edx, edi
jg 0x456a3e
jl 0x456a8a
cmp eax, ebx
jae 0x456a3e
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x4569ef.43
cmp edx, edi
jl 0x456a3e
jg 0x456aa5
cmp eax, ebx
jb 0x456a3e
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x4569ef.43
cmp edx, edi
jg 0x456a3e
jl 0x456ac4
cmp eax, ebx
ja 0x456a3e
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x4569ef.43
and eax, ebx
and edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
or eax, ebx
or edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
xor eax, ebx
xor edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
mov ecx, ebx
call fcn.00492500
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
mov ecx, ebx
call fcn.004924d0
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
mov ecx, ebx
or ecx, dword [ebp - 0x80]
je case.default.0x456f2b
mov ecx, dword [ebp - 0x80]
push ecx
push ebx
push edx
push eax
call fcn.00491a00
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
mov ecx, eax
or ecx, edx
jne 0x456ba9
test edi, edi
jg 0x456c05
jl case.default.0x456f2b
test ebx, ebx
jae 0x456c05
mov dword [esi], 0x496816
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov dword [esi + 8], edx
cmp dword [ebp - 0x28], 0
je 0x456b89
mov ebx, dword [ebp - 0x28]
mov eax, esi
call fcn.00472800
test eax, eax
je 0x4577e9
mov al, byte [ebx + 0x17]
test al, al
jne 0x456b7c
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
je 0x456b89
mov dword [esi], ebx
mov dword [esi + 8], 4
cmp dword [esi + 0xc], 0
je 0x4574c3
mov eax, dword [esi + 8]
lea ecx, [eax - 1]
cmp ecx, 4
ja case.0x456ba2.3
jmp dword [ecx*4 + 0x457ac8]
test edx, edx
jg 0x456c05
jl 0x456bb3
test eax, eax
jae 0x456c05
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x58], 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.0042eeb0
cmp dword [ebp - 0x58], 0
fst qword [esi]
je 0x456c0e
push 0
push 2
push edi
push ebx
call fcn.00492410
or eax, edx
je 0x456c0e
fchs
fstp qword [esi]
jmp 0x456c10
mov dword [ebp - 0x58], 0
jmp 0x456bcd
fstp st(0)
test edi, edi
jg 0x456c26
jl 0x456c1a
test ebx, ebx
jae 0x456c26
mov dword [ebp - 0x18], 2
jmp case.0x4569ef.43
fld qword [esi]
call fcn.00491986
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x4569ef.43
xor eax, eax
cmp dword [ebp - 0x2c], 2
sete al
push eax
push 1
mov eax, edi
call fcn.0044cba0
fstp qword [ebp - 0x44]
xor ecx, ecx
cmp dword [ebp - 0x34], 2
mov eax, ebx
sete cl
push ecx
push 1
call fcn.0044cba0
fst qword [ebp - 0x5c]
mov ecx, dword [esi + 8]
add esp, 0x10
cmp ecx, 0x24
jl 0x456c78
mov ebx, 1
cmp ecx, 0x2a
jle 0x456c7d
mov ebx, 2
lea eax, [ecx - 0x24]
cmp eax, 0x17
ja case.0x456c8c.43
movzx edx, byte [eax + 0x457b0c]
jmp dword [edx*4 + 0x457adc]
fadd qword [ebp - 0x44]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x456b57
fsub qword [ebp - 0x44]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x456b57
fmul qword [ebp - 0x44]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x456b57
fld qword [ebp - 0x44]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x456cde
fstp st(1)
mov dword [esi], 0x496816
xor ebx, ebx
fstp st(0)
mov dword [esi + 8], ebx
jmp 0x456b57
fdivp st(1)
fst qword [esi]
cmp ecx, 0x35
jne case.0x456c8c.43
sub esp, 8
fstp qword [esp]
call fcn.0042ef10
fstp qword [esi]
mov dword [esi + 8], ebx
jmp 0x456b57
fld qword [ebp - 0x44]
fucompp
fnstsw ax
test ah, 0x44
jp 0x456d1c
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x456b57
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x456b57
fld qword [ebp - 0x44]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x456d1c
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x456b57
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 0x41
jne 0x456d1c
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x456b57
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 5
jp 0x456d1c
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x456b57
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 1
jne 0x456d1c
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x456b57
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 0x41
jp 0x456d1c
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x456b57
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x456ddb
mov edi, 1
jmp 0x456ddd
xor edi, edi
fld st(1)
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x456e06
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 0x41
jne 0x456e08
fstp st(0)
xor ebx, ebx
mov dword [esi], 0x496816
mov dword [esi + 8], ebx
jmp 0x456b57
fstp st(0)
test edi, edi
je 0x456e32
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x44]
fstp qword [esp]
call fcn.0042ef40
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x456df6
fld qword [ebp - 0x5c]
fchs
fld qword [ebp - 0x44]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0042eeb0
fstp qword [esi]
test edi, edi
je 0x456cd6
fld qword [0x49e8a0]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x44]
fstp qword [esp]
call fcn.0042ef40
sub esp, 8
fstp qword [esp]
call fcn.0042eea0
fld1
fucompp
fnstsw ax
test ah, 0x44
jp 0x456cd6
fld qword [esi]
mov dword [esi + 8], ebx
fchs
fstp qword [esi]
jmp 0x456b57
mov eax, dword [esi + 8]
add eax, 0xffffffdc
cmp eax, 2
ja 0x456ef2
mov ecx, edi
call fcn.0044ce10
mov ecx, ebx
mov dword [ebp - 0x58], eax
call fcn.0044ce10
cmp dword [ebp - 0x58], 0
jne 0x456eb4
test eax, eax
je 0x456ef2
xor ecx, ecx
cmp dword [ebp - 0x58], eax
sete cl
xor edx, edx
cmp dword [esi + 8], 0x26
setne dl
cmp edx, ecx
jne 0x456edd
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x456b89
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], 1
jmp 0x456b89
lea ecx, [ebp - 0xdb4]
mov eax, edi
call fcn.0044cc50
mov ebx, eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x194]
mov dword [ebp - 0x34], ebx
call fcn.0044cc50
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 8]
add eax, 0xffffffdc
mov dword [ebp - 0x18], 1
cmp eax, 7
ja case.default.0x456f2b
jmp dword [eax*4 + 0x457b24]
mov eax, dword [0x4a4440]
cmp byte [eax + 0xce], 0
push ebx
jne 0x456f4f
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00482f41
add esp, 8
jmp 0x456f59
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x456f6e
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4569ef.43
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4569ef.43
mov eax, dword [ebp - 0x14]
push ebx
push eax
call fcn.00483091
add esp, 8
test eax, eax
jne 0x456f6e
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4569ef.43
mov ecx, dword [0x4a4440]
mov al, byte [ecx + 0xce]
push ebx
test al, al
jne 0x456fba
mov edx, dword [ebp - 0x14]
push edx
call fcn.00482f41
jmp 0x456fe5
cmp al, 2
jne 0x456fdc
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
xor edx, edx
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x4569ef.43
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00483091
xor edx, edx
add esp, 8
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x4569ef.43
mov eax, dword [0x4a4440]
mov al, byte [eax + 0xce]
push ebx
test al, al
jne 0x457017
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00482f41
jmp 0x457030
cmp al, 2
jne 0x457027
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x457033
mov eax, dword [ebp - 0x14]
push eax
call fcn.00483091
add esp, 8
test eax, eax
jle 0x456f6e
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4569ef.43
mov ecx, dword [0x4a4440]
mov al, byte [ecx + 0xce]
push ebx
test al, al
jne 0x457068
mov edx, dword [ebp - 0x14]
push edx
call fcn.00482f41
jmp 0x457081
cmp al, 2
jne 0x457078
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x457084
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00483091
add esp, 8
test eax, eax
jns 0x456f6e
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4569ef.43
mov edx, dword [0x4a4440]
mov al, byte [edx + 0xce]
push ebx
test al, al
jne 0x4570b9
mov eax, dword [ebp - 0x14]
push eax
call fcn.00482f41
jmp 0x4570d2
cmp al, 2
jne 0x4570c9
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x4570d5
mov edx, dword [ebp - 0x14]
push edx
call fcn.00483091
add esp, 8
cmp eax, 0xffffffff
jle 0x456f6e
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4569ef.43
mov eax, dword [0x4a4440]
mov al, byte [eax + 0xce]
push ebx
test al, al
jne 0x45710a
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00482f41
jmp 0x457123
cmp al, 2
jne 0x45711a
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x457126
mov eax, dword [ebp - 0x14]
push eax
call fcn.00483091
add esp, 8
cmp eax, 1
jge 0x456f6e
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4569ef.43
cmp dword [edi + 8], 4
jne 0x45714f
mov eax, dword [edi]
call fcn.00412a50
jmp 0x45715d
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x457154
sub eax, edx
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x24], eax
je 0x457180
mov ecx, eax
mov eax, dword [ebp - 0x28]
push ecx
push ebx
call fcn.00473510
test eax, eax
je 0x457180
mov edx, dword [ebp - 0x28]
mov dword [esi], edx
jmp 0x456b82
mov eax, dword [ebp - 0x50]
cmp dword [eax + 8], 4
jne 0x457194
mov ecx, eax
mov eax, dword [ecx]
call fcn.00412a50
jmp 0x4571a9
mov eax, dword [ebp - 0x14]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4571a0
sub eax, edx
cmp dword [ebp - 0x28], 0
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x74], eax
lea eax, [eax + edx + 1]
mov dword [ebp - 0x18], eax
jne 0x457373
cmp dword [ebp - 0x64], 0
je 0x4571e1
cmp dword [ebp - 0x1c], 0
jne 0x4571e1
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x18], 0x41
jne 0x4571e1
mov ebx, dword [ebp - 0x64]
mov dword [ebp - 0x58], 1
jmp 0x457226
mov edx, dword [ebp - 0x20]
cmp dword [edx + 0x18], 0x13
jne 0x457373
cmp dword [ebp - 0x1c], 0
je 0x457373
mov eax, dword [ebp - 0x40]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 4
jne 0x457373
mov ebx, dword [eax]
mov al, byte [ebx + 0x17]
test al, al
jne 0x457217
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 1
jne 0x457373
mov dword [ebp - 0x58], 0
test ebx, ebx
je 0x457373
cmp byte [ebx + 0x17], 0
jne 0x457239
mov eax, dword [ebx + 0xc]
jmp 0x45723b
mov eax, ebx
mov cl, byte [eax + 0x17]
cmp cl, 1
jne 0x457248
mov eax, dword [eax + 8]
jmp 0x457252
cmp cl, 2
jne 0x457259
call fcn.00401000
cmp eax, 0x4a95ee
jne 0x45725b
xor eax, eax
cmp eax, dword [ebp - 0x14]
jne 0x4572a7
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
push edx
push eax
mov eax, ebx
call fcn.00473510
test eax, eax
je 0x457373
cmp dword [ebp - 0x58], 0
jne case.0x4576b5.3
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x1c]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [esi + 0xc], ecx
mov edx, dword [ebp + eax*4 - 0xcb4]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx]
mov dword [esi], eax
jmp 0x456b82
cmp eax, dword [ebp - 0x34]
je 0x457373
mov ecx, dword [ebp - 0x18]
push 1
push 0
dec ecx
push ecx
push 0
push ebx
call fcn.00472eb0
test eax, eax
je 0x4577e9
cmp byte [ebx + 0x17], 0
jne 0x4572d4
mov edi, dword [ebx + 0xc]
jmp 0x4572d6
mov edi, ebx
test byte [edi + 0x15], 8
je 0x4572e3
mov eax, edi
call fcn.00401150
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x4572fc
test byte [edi + 0x15], 4
je 0x4572f7
mov eax, edi
call fcn.0042e090
mov edi, dword [edi + 8]
jmp 0x45730e
cmp al, 2
jne 0x457309
call fcn.00401000
mov edi, eax
jmp 0x45730e
mov edi, 0x4a95ee
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x457326
mov edx, dword [ebp - 0x14]
push eax
push edx
push edi
call fcn.0048b890
mov eax, dword [ebp - 0x74]
add esp, 0xc
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x34]
inc ecx
push ecx
push edx
add eax, edi
push eax
call fcn.0048b890
add esp, 0xc
push 0
mov eax, ebx
call fcn.00412ae0
cmp dword [ebp - 0x58], 0
jne case.0x4576b5.3
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0xcb8]
mov edx, dword [ecx]
dec eax
mov dword [ebp - 0x1c], eax
mov dword [esi], edx
jmp 0x456b82
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x20]
sub edx, eax
add edx, dword [ecx]
mov ecx, dword [ebp - 0x18]
cmp ecx, edx
ja 0x457392
mov dword [esi], eax
add eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x4573e6
cmp ecx, 0x1001
jae 0x4573b6
cmp dword [ebp - 0x3c], 0x9c40
jae 0x4573b6
mov ebx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0048c9c0
add dword [ebp - 0x3c], ebx
mov eax, esp
mov dword [esi], eax
jmp 0x4573e6
cmp dword [ebp - 0x30], 0xc8
je 0x4577d5
mov edx, dword [ebp - 0x18]
push edx
call fcn.004830f9
mov ecx, dword [ebp - 0x30]
add esp, 4
mov dword [ebp + ecx*4 - 0x4b4], eax
mov dword [esi], eax
test eax, eax
je 0x4577d5
inc dword [ebp - 0x30]
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x4573fd
mov edx, dword [ebp - 0x14]
mov eax, dword [esi]
push ebx
push edx
push eax
call fcn.0048b890
add esp, 0xc
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x34]
mov eax, dword [esi]
inc ecx
push ecx
push edx
add eax, ebx
push eax
call fcn.0048b890
mov ecx, dword [ebp - 0x50]
xor eax, eax
add esp, 0xc
cmp dword [ecx + 8], eax
je 0x457431
cmp dword [edi + 8], eax
je 0x457431
mov dword [ebp - 0x18], 5
mov dword [esi + 4], eax
jmp case.0x4569ef.43
mov dword [ebp - 0x18], eax
jmp case.0x4569ef.43
mov eax, dword [esi]
push 0
call fcn.00412600
jmp case.0x456ba2.1
cmp dword [esi + 4], 0
je 0x457451
mov eax, 1
jmp case.0x456ba2.1
push 0
push 1
push 0
push 1
xor ecx, ecx
mov eax, esi
call fcn.0044cc50
call fcn.00470120
add esp, 0x10
jmp case.0x456ba2.1
xor eax, eax
mov ecx, eax
mov eax, esi
call fcn.0044c910
mov ecx, dword [esi + 0xc]
mov edx, 0x20
cmp dword [ecx + 8], edx
je 0x457518
mov edi, dword [ebp - 0x20]
jmp 0x457490
xor ebx, ebx
cmp dword [ecx + 8], 0x21
sete bl
cmp eax, ebx
jne 0x457507
mov edi, ecx
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x20], edi
test ecx, ecx
je 0x4574ae
cmp dword [ecx + 8], edx
jne 0x457490
cdq
mov dword [esi + 8], 1
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], ecx
jmp 0x456b89
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x1c]
cmp edx, ecx
jle 0x4574f6
mov edi, 6
mov eax, dword [ebp + edx*4 - 0xcb8]
dec edx
mov dword [ebp - 0x48], edx
cmp dword [eax + 8], edi
jne 0x4574f2
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x1c]
cmp edx, ecx
jg 0x4574d2
mov dword [ebp + ecx*4 - 0xcb4], esi
inc ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x48], ecx
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
add edi, 0x10
jmp 0x455b76
test eax, eax
jne 0x457504
mov edi, dword [esi + 0xc]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
add edi, 0x10
jmp 0x455b76
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
push ecx
jmp 0x4577da
cmp dword [ebx], 1
je 0x457547
mov dword [ebp - 0x38], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x70]
test eax, eax
je case.0x4576b5.3
lea edx, [ebp - 0x68]
push edx
lea ecx, [ebp - 0x6c]
push ecx
push eax
call fcn.004737b0
add esp, 0xc
jmp case.0x4576b5.3
mov esi, dword [esi + 0xc]
test esi, esi
je 0x45757f
push esi
call fcn.00482f58
add esp, 4
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0xffffffff
call fcn.00457fa0
jmp case.0x4576b5.3
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
push eax
push 0
push str.Out_of_memory.
call fcn.0042d870
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0xffffffff
call fcn.00457fa0
jmp 0x4577e9
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp + 8]
push edx
push 0
push str.Out_of_memory.
call fcn.0042d870
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0xffffffff
call fcn.00457fa0
jmp 0x4577e9
mov eax, dword [ebp + 8]
mov cl, byte [eax]
cmp cl, 3
je case.0x4576b5.3
cmp ebx, 1
jne 0x455dc2
cmp dword [ebp - 0x64], 0
mov eax, dword [ebp - 0xcb4]
mov ebx, eax
je 0x45761e
mov ebx, dword [ebp - 0x64]
call fcn.00472800
test eax, eax
je 0x4577e9
jmp case.0x4576b5.3
cmp cl, 0x11
je 0x4578c7
cmp cl, 0x6a
je 0x4578c7
cmp cl, 0x6b
je 0x4578c7
test edx, edx
je 0x4576a4
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x45768d
cmp ecx, 2
je 0x45768d
cmp ecx, 6
je 0x45768d
cmp ecx, 4
jne 0x4576a4
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x45765f
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x4576a4
mov dword [edx + 8], 6
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x457677
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, 0x496816
jmp 0x45792f
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, 0x496816
jmp 0x45792f
mov ecx, dword [esi]
mov dword [ebp - 0x38], ecx
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x4576b5.3
jmp dword [ecx*4 + 0x457b44]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [ebp - 0x38]
push edx
push eax
call fcn.00401050
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4576d1
sub eax, edx
inc eax
add dword [esi], eax
jmp case.0x4576b5.3
mov ecx, dword [0x4a4440]
fld qword [eax]
mov edi, dword [ebp - 0x38]
sub esp, 8
add ecx, 0x74
fstp qword [esp]
push ecx
mov esi, 0x100
call fcn.00470290
lea edx, [eax + 1]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add dword [eax], edx
jmp case.0x4576b5.3
mov eax, dword [eax]
cmp ecx, 4
jne 0x45777a
cmp byte [eax + 0x17], 0
jne 0x457723
mov edi, dword [eax + 0xc]
jmp 0x457725
mov edi, eax
test byte [edi + 0x15], 8
je 0x457732
mov eax, edi
call fcn.00401150
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x457755
test byte [edi + 0x15], 4
je 0x457746
mov eax, edi
call fcn.0042e090
mov eax, dword [edi + 8]
mov dword [ebp + 0x14], eax
mov eax, dword [ebx]
call fcn.00412a50
jmp 0x457789
cmp al, 2
jne 0x45776a
call fcn.00401000
mov dword [ebp + 0x14], eax
mov eax, dword [ebx]
call fcn.00412a50
jmp 0x457789
mov eax, dword [ebx]
mov dword [ebp + 0x14], 0x4a95ee
call fcn.00412a50
jmp 0x457789
mov dword [ebp + 0x14], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x457780
sub eax, edx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
lea esi, [eax + 1]
mov eax, dword [edx + 8]
add ecx, ecx
movzx eax, word [eax + ecx*8 + 2]
mov ecx, 0xff
mov dword [ebp - 0x18], esi
cmp ax, cx
jae 0x4577ab
mov eax, ecx
mov edx, dword [ebp + 0x28]
lea eax, [eax + edx + 1]
cmp esi, eax
jbe 0x4578ac
mov ecx, dword [ebp + 0x20]
mov edi, dword [ecx]
sub edi, eax
add edi, esi
push edi
mov dword [ebp + 0x28], edi
call fcn.004830f9
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4577fe
push 0x496816
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.
call fcn.0042d870
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x38], 0
mov dword [edx], 0
jmp case.0x4576b5.3
cmp edi, 0x400000
jbe 0x45780c
inc dword [0x4a9c98]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax]
mov edi, dword [ecx]
sub edi, eax
je 0x457825
push edi
push eax
push ebx
call fcn.0048b890
add esp, 0xc
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
lea eax, [edi + ebx]
push esi
push ecx
push eax
mov dword [edx], eax
mov dword [ebp - 0x38], eax
call fcn.0048b890
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
add esp, 0xc
push eax
call fcn.00482f58
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx]
add esp, 4
cmp eax, 0x400000
jbe 0x45785e
dec dword [0x4a9c98]
mov edx, dword [ebp + 0x1c]
mov edi, dword [edx]
add edi, eax
xor eax, eax
cmp dword [ebp + 0xc], eax
jle 0x457898
lea esp, [esp]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edx]
cmp ecx, edx
jb 0x457892
cmp ecx, edi
jae 0x457892
mov esi, ebx
sub esi, edx
add esi, ecx
mov ecx, dword [ebp + 0x24]
mov dword [ecx + eax*4], esi
mov esi, dword [ebp - 0x18]
inc eax
cmp eax, dword [ebp + 0xc]
jl 0x457870
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x18]
mov dword [edx], ebx
mov dword [ecx], eax
add dword [edi], esi
jmp case.0x4576b5.3
mov edi, dword [ebp + 0x18]
mov eax, dword [edi]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x4578c3
push esi
push ecx
push eax
call fcn.00483b20
add esp, 0xc
add dword [edi], esi
jmp case.0x4576b5.3
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x4578d3.3
jmp dword [ecx*4 + 0x457b60]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x4578d3.6
mov dword [ebp - 0x38], 0x496816
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x457908
mov eax, dword [ebp + esi*4 - 0x4b8]
dec esi
push eax
call fcn.00482f58
add esp, 4
test esi, esi
jne 0x4578f3
mov esi, dword [ebp - 0x48]
test esi, esi
je 0x45792c
nop
mov eax, dword [ebp + esi*4 - 0xcb8]
dec esi
cmp dword [eax + 8], 6
jne 0x457928
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
jne 0x457910
mov eax, dword [ebp - 0x38]
lea esp, [ebp - 0xdc4]
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.0x4578d3.6
jmp case.0x4576b5.6
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x4578d3.0
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jmp 0x4578df
mov eax, dword [eax]
call fcn.0044c820
jmp 0x45797d
mov esi, dword [eax]
call fcn.0044c880
jmp 0x45797d
mov eax, dword [ebp + 8]
test eax, eax
je case.0x4576b5.6
mov dword [ebp - 0x38], 0x497ee0
jmp case.0x4576b5.3