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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x491df8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xda4
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x14]
push ebx
xor ebx, ebx
xor eax, eax
push esi
mov esi, dword [ebp + 8]
cmp byte [esi], 2
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp + 0xc]
setne al
push edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], 0x4957f9
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x40], ebx
dec eax
and eax, dword [0x4a6c10]
shl ecx, 4
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 8]
mov edi, dword [ecx + eax + 0xc]
lea eax, [ecx + eax + 0xc]
cmp dword [edi + 8], 0x41
mov dword [ebp - 0x28], edi
je 0x456054
mov eax, 0x10
call fcn.0048dcd0
mov ecx, dword [edi]
mov esi, esp
mov dword [esi], ecx
mov edx, dword [edi + 4]
mov dword [esi + 4], edx
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 8]
cmp eax, 8
jge 0x454a18
cmp eax, 7
jne 0x455ea4
mov ecx, dword [esi + 4]
xor ebx, ebx
cmp ecx, ebx
je 0x454844
mov eax, dword [esi]
mov dword [esi], 0x4957f9
mov dword [esi + 8], ebx
mov edi, dword [eax]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ecx
cmp edi, ecx
jne 0x454611
movzx edx, word [eax + 0xa]
cmp byte [edx + ecx], bl
jne 0x454611
cmp byte [eax + 0x14], bl
je 0x454611
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x17], bl
jne 0x4545e8
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x454611
mov dword [esi + 8], 6
mov eax, dword [eax + 4]
cmp byte [eax + 0x17], bl
jne 0x454600
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 0x455ea4
test edi, edi
je 0x45471a
mov eax, dword [ebp - 0x14]
cmp eax, edi
mov edi, dword [ebp - 0x20]
jae 0x45463d
cmp ebx, 0xfd
jae 0x454647
mov cl, byte [eax]
mov byte [ebp + ebx - 0x18c], cl
inc eax
inc ebx
cmp eax, dword [edi]
jb 0x454623
mov dword [ebp - 0x14], eax
cmp ebx, 0xfd
jb 0x454655
jmp 0x45464a
mov dword [ebp - 0x14], eax
cmp eax, dword [edi]
jb 0x454793
mov edi, dword [ebp - 0x20]
mov edi, dword [edi + 4]
movzx eax, byte [edi + 0x17]
cmp eax, 3
ja case.default.0x454661
jmp dword [eax*4 + 0x456404]
mov eax, edi
call fcn.00401150
cmp dword [0x4a6dd4], 0
jne 0x4546a9
cmp dword [edi + 0xc], 0
jne 0x4546a9
mov eax, dword [edi + 0x18]
push 0
lea edx, [ebp - 0x6a]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x45469f
mov dword [0x4a9d60], 0
dec eax
jmp 0x4546df
mov dword [0x4a9d60], edi
xor eax, eax
jmp 0x4546df
mov eax, dword [edi + 0xc]
jmp 0x4546df
mov ecx, dword [edi + 0xc]
push 0
call fcn.004719c0
jmp 0x4546df
push 0x4a8cc4
xor ecx, ecx
call fcn.00403c70
cmp eax, 0xffffffff
jne 0x4546df
xor eax, eax
jmp 0x4546df
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x10]
push ecx
push 0
call edx
add esp, 8
mov ecx, 0xfd
sub ecx, ebx
cmp eax, ecx
ja 0x454793
mov edi, dword [ebp - 0x20]
mov ecx, dword [edi + 4]
lea edx, [ebp + ebx - 0x18c]
push edx
call fcn.004719c0
add ebx, eax
movzx eax, word [edi + 0xa]
add dword [ebp - 0x14], eax
add edi, 0xc
mov dword [ebp - 0x20], edi
mov edi, dword [edi]
test edi, edi
jne 0x454619
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx]
test al, al
je 0x45473a
cmp ebx, 0xfd
jae 0x454742
inc ecx
mov byte [ebp + ebx - 0x18c], al
mov al, byte [ecx]
inc ebx
test al, al
jne 0x454723
cmp ebx, 0xfd
jb 0x454747
cmp byte [ecx], 0
jne 0x454793
mov eax, dword [ebp - 0x20]
test ebx, ebx
jne 0x454753
cmp byte [eax + 8], bl
je 0x454796
mov byte [ebp + ebx - 0x18c], 0
cmp byte [eax + 8], 0
je 0x4547e7
lea eax, [ebx + 1]
mov dword [esi + 8], 0
call fcn.0048af30
mov edi, esp
lea eax, [ebp - 0x18c]
mov edx, edi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x454782
mov dword [esi], edi
jmp 0x455ea4
mov eax, dword [ebp - 0x20]
cmp dword [eax], 0
je 0x4547a8
jmp 0x4547a0
add eax, 0xc
cmp dword [eax], 0
jne 0x4547a0
cmp byte [eax + 8], 0
je 0x455ea4
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je case.0x456128.3
mov eax, dword [ebp - 0x3c]
test eax, eax
je case.0x456128.3
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.004715e0
test eax, eax
jne case.0x456128.3
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
jmp case.0x456128.3
cmp byte [ebp - 0x18c], 0
je 0x456261
lea edx, [ebp - 0x45]
push edx
push 3
lea eax, [ebp - 0x88]
push eax
push ebx
lea ecx, [ebp - 0x18c]
push ecx
mov ecx, 0x4a8ce0
call fcn.0041f830
test eax, eax
jne 0x454842
mov eax, dword [ebp - 0x88]
xor edx, edx
cmp byte [ebp - 0x45], dl
mov ecx, ebx
setne dl
inc edx
push edx
push eax
push 0x4a8ce0
lea edx, [ebp - 0x18c]
call fcn.0041fac0
test eax, eax
je 0x456261
mov dword [esi], eax
mov edi, dword [esi]
mov al, byte [edi + 0x17]
test al, al
jne 0x454853
mov ecx, dword [edi + 0xc]
mov al, byte [ecx + 0x17]
movzx eax, al
mov ecx, 1
sub eax, ecx
je 0x4548a7
sub eax, 3
jne 0x4548dd
mov eax, dword [edi + 0x10]
cmp eax, 0x443540
jne 0x454886
mov eax, dword [0x4a3440]
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 0x455ea4
cmp eax, 0x443be0
jne 0x4548dd
mov edx, dword [0x4a3440]
mov eax, dword [edx + 0x38]
mov dword [esi], eax
mov dword [esi + 4], 0
mov dword [esi + 8], ecx
jmp 0x455ea4
cmp dword [0x4a6dd4], 0
jne 0x455e9d
cmp byte [edi + 0x17], 0
jne 0x4548bf
mov eax, dword [edi + 0xc]
jmp 0x4548c1
mov eax, edi
test byte [eax + 0x15], 0xa
jne 0x455e9d
xor ecx, ecx
cmp dword [eax + 0xc], ecx
setne cl
mov eax, ecx
test eax, eax
jne 0x455e9d
movzx eax, byte [edi + 0x17]
cmp eax, 3
ja case.default.0x4548e6
jmp dword [eax*4 + 0x456414]
mov eax, edi
call fcn.00401150
cmp dword [0x4a6dd4], 0
jne 0x45492e
cmp dword [edi + 0xc], 0
jne 0x45492e
mov eax, dword [edi + 0x18]
push 0
lea edx, [ebp - 0x69]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x454924
mov dword [0x4a9d60], 0
dec eax
jmp 0x454962
mov dword [0x4a9d60], edi
xor eax, eax
jmp 0x454962
mov eax, dword [edi + 0xc]
jmp 0x454962
mov ecx, dword [edi + 0xc]
push 0
call fcn.004719c0
jmp 0x454962
push 0x4a8cc4
xor ecx, ecx
call fcn.00403c70
cmp eax, 0xffffffff
jne 0x454962
xor eax, eax
jmp 0x454962
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x10]
push ecx
push 0
call edx
add esp, 8
lea edi, [eax + 1]
cmp edi, 1
jne 0x454994
mov eax, dword [esi]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x454979
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
je 0x455e9d
mov dword [esi], 0x4957f9
mov dword [esi + 8], 0
jmp 0x455ea4
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp + 0x20]
sub edx, eax
add edx, dword [ecx]
cmp edi, edx
ja 0x4549b0
mov ebx, eax
add eax, edi
mov dword [ebp - 0x50], eax
jmp 0x4549fb
cmp edi, 0x1001
jae 0x4549cf
cmp dword [ebp - 0x40], 0x9c40
jae 0x4549cf
mov eax, edi
call fcn.0048af30
add dword [ebp - 0x40], edi
mov ebx, esp
jmp 0x4549fb
mov ebx, dword [ebp - 0x38]
cmp ebx, 0xc8
je 0x455fa0
push edi
call fcn.00481849
add esp, 4
mov dword [ebp + ebx*4 - 0x4ac], eax
test eax, eax
je 0x455fa0
inc dword [ebp - 0x38]
mov ebx, eax
mov ecx, dword [esi]
push ebx
call fcn.004719c0
mov dword [esi], ebx
mov dword [esi + 4], 0
mov dword [esi + 8], 5
jmp 0x455ea4
cmp eax, 0x3e
jne 0x454e0c
mov eax, dword [esi]
mov ecx, dword [eax + 4]
movzx eax, byte [eax + 9]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ebx
jg 0x4547b2
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
lea ebx, [ebp + eax*4 - 0xcac]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x44], ebx
test ecx, ecx
jne 0x454adf
test eax, eax
je 0x4547b2
dec eax
mov edi, dword [ebp + eax*4 - 0xcac]
mov dword [ebp - 0x18], eax
lea eax, [ebp + eax*4 - 0xcac]
mov dword [ebp - 0x44], eax
call fcn.0044c1c0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x454ac8
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x454a9b
lea edx, [edi*4]
push edx
lea eax, [ebx + 4]
push ebx
push eax
call fcn.00482250
add esp, 0xc
inc dword [ebp - 0x58]
mov eax, 0x10
call fcn.0048dcd0
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], 0x4957f9
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], 0x4a4740
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
cmp edx, dword [eax + 0x14]
jge 0x454adf
mov ecx, dword [esi]
cmp byte [ecx + 8], 2
jne 0x4547b2
mov edi, dword [esi + 0xc]
xor eax, eax
lea edx, [ebp - 0x18c]
mov dword [esi + 4], edx
mov dword [ebp - 0x30], edi
mov dword [esi + 0xc], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 4], eax
mov eax, dword [esi]
cmp byte [eax + 8], 2
mov eax, dword [ebp - 0x1c]
sete cl
movzx edx, cl
push edx
mov edx, dword [ebp - 0x14]
push eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push ebx
lea ecx, [ebp - 0x68]
push ecx
push edx
call fcn.004565f0
test al, al
je 0x455fab
mov ecx, dword [ebp + 8]
mov dword [0x4a9048], ecx
mov eax, dword [esi + 8]
cmp eax, 1
je 0x454de1
cmp eax, 2
je 0x454de1
cmp eax, 6
je 0x454de1
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x454b77
mov edx, dword [ebp - 0x28]
cmp dword [edx + 0x18], 0x41
jne 0x454b77
cmp byte [ecx], 3
mov dword [ebp - 0x1c], 1
je 0x455fdf
mov ebx, dword [ebp - 0x54]
jmp 0x454bac
mov edx, dword [ebp - 0x28]
cmp dword [edx + 0x18], 0x13
mov dword [ebp - 0x1c], 0
jne 0x454baa
test eax, eax
je 0x454baa
mov eax, dword [ebp - 0x44]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 4
jne 0x454baa
mov ebx, dword [eax]
mov al, byte [ebx + 0x17]
test al, al
jne 0x454ba6
mov edx, dword [ebx + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
je 0x454bac
xor ebx, ebx
mov edi, dword [esi]
test ebx, ebx
je 0x454c6e
mov eax, dword [0x4a3440]
mov edx, dword [eax + 0x94]
cmp edx, dword [ebp - 0x14]
jne 0x454bd3
mov al, byte [ebx + 0x16]
and al, 0x22
cmp al, 2
je 0x454c6e
mov ecx, dword [esi + 0xc]
cmp ecx, edi
jne 0x454be9
mov edx, dword [esi + 4]
push edx
mov edi, ecx
mov eax, ebx
call fcn.00471ce0
jmp 0x454c35
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x454bf0
mov ecx, dword [esi]
sub eax, edx
cmp ecx, dword [0x4a8c20]
jne 0x454c20
cmp eax, 0x40
jb 0x454c20
push eax
mov edi, ecx
mov eax, ebx
call fcn.00471ce0
xor eax, eax
mov dword [0x4a8c20], eax
mov dword [0x4a8c24], eax
jmp 0x454c35
push 1
push 0
push 0xffffffffffffffff
push ecx
push ebx
call fcn.004715e0
test eax, eax
je 0x456016
cmp dword [ebp - 0x1c], 0
jne 0x455fef
mov eax, dword [ebp - 0x28]
dec dword [ebp - 0x18]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
lea eax, [ebp - 0x68]
mov dword [esi], ebx
mov dword [esi + 8], 4
mov dword [ebp - 4], 0xffffffff
call fcn.00456a10
jmp 0x455ea4
mov edx, dword [esi + 0xc]
mov ebx, 1
test edx, edx
je 0x454c99
mov eax, dword [ebp - 0x38]
cmp eax, 0xc8
je 0x456003
cmp edx, edi
jne 0x454c8e
xor ebx, ebx
mov dword [ebp + eax*4 - 0x4ac], edx
inc eax
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [esi]
mov dword [esi + 0xc], ecx
cmp byte [edx], 0
jne 0x454cce
lea eax, [ebp - 0x68]
mov dword [esi], 0x4957f9
mov dword [esi + 8], 5
mov dword [esi + 4], 0
mov dword [ebp - 4], 0xffffffff
call fcn.00456a10
jmp 0x455ea4
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x3d], 0
je 0x454ce5
test ebx, ebx
je 0x454d19
xor ebx, ebx
cmp dword [ebp - 0x1c], ebx
sete bl
jmp 0x454d19
cmp edi, dword [0x4a8c20]
jne 0x454d14
xor ebx, ebx
cmp dword [ebp - 0x1c], ebx
jne 0x454d19
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp eax, 0x41
je 0x454d19
cmp eax, 0x3e
je 0x454d14
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x41
jne 0x454d02
jmp 0x454d19
mov ebx, 1
mov eax, dword [esi]
mov dword [esi + 4], 0
mov dword [esi + 8], 5
test ebx, ebx
je 0x454dcb
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x454d34
mov ecx, dword [ebp + 0x1c]
mov edi, dword [ebp - 0x50]
sub eax, edx
mov edx, dword [ecx]
lea ebx, [eax + 1]
mov eax, dword [ebp + 0x20]
sub edx, edi
add edx, dword [eax]
cmp ebx, edx
ja 0x454d67
mov eax, dword [esi]
push ebx
push eax
push edi
call fcn.00489e00
add esp, 0xc
add edi, ebx
mov dword [ebp - 0x50], edi
jmp 0x454dcb
cmp ebx, 0x1001
jae 0x454d93
cmp dword [ebp - 0x40], 0x9c40
jae 0x454d93
mov eax, ebx
call fcn.0048af30
mov ecx, dword [esi]
mov eax, esp
push ebx
push ecx
push eax
call fcn.00489e00
add esp, 0xc
add dword [ebp - 0x40], ebx
jmp 0x454dcb
cmp dword [ebp - 0x38], 0xc8
je 0x45602a
push ebx
call fcn.00481849
mov ecx, dword [ebp - 0x38]
add esp, 4
mov dword [ebp + ecx*4 - 0x4ac], eax
test eax, eax
je 0x45602a
mov ecx, dword [esi]
push ebx
push ecx
push eax
call fcn.00489e00
add esp, 0xc
inc dword [ebp - 0x38]
mov dword [esi], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.00456a10
jmp 0x455ea4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x68]
mov dword [esi + 0xc], edi
test eax, eax
je 0x455ea4
lea edx, [ebp - 0x60]
push edx
lea ecx, [ebp - 0x64]
push ecx
push eax
call fcn.00471f00
add esp, 0xc
jmp 0x455ea4
cmp eax, 0x1f
jne 0x454e4f
cmp dword [esi + 0xc], 0
je 0x455f80
test ebx, ebx
je 0x455f80
mov eax, dword [ebp + ebx*4 - 0xcb0]
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 - 0x18], ebx
mov dword [esi + 0xc], ecx
jmp 0x455eae
test ebx, ebx
je 0x4547b2
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp + ecx*4 - 0xcb0]
dec ecx
cmp dword [edi + 8], 8
mov dword [ebp - 0x18], ecx
jge 0x4547b2
cmp eax, 0x20
jne 0x454eaa
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4547b2
mov edx, dword [eax + 0xc]
mov dword [edi + 0xc], edx
mov dword [ebp - 0x28], 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 0x455ea4
add eax, 0xffffffee
cmp eax, 0x27
ja case.0x454eb9.20
movzx ecx, byte [eax + 0x45642c]
jmp dword [ecx*4 + 0x456424]
mov eax, edi
call fcn.0044bd30
mov ebx, eax
mov dword [ebp - 0x5c], ebx
jmp 0x454ed1
mov ebx, dword [ebp - 0x5c]
mov eax, dword [esi + 8]
xor edx, edx
lea ecx, [eax - 9]
mov dword [ebp - 0x1c], edx
cmp ecx, 0x34
ja case.0x454eec.11
movzx ecx, byte [ecx + 0x456470]
jmp dword [ecx*4 + 0x456454]
mov ecx, ebx
mov eax, edi
call fcn.0044bc70
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], 1
jmp 0x455ea4
mov ecx, ebx
mov eax, edi
call fcn.0044bc70
test eax, eax
jne 0x45590f
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x455ea4
cmp ebx, 1
jne 0x454f57
push ebx
mov ecx, edi
call fcn.0044be70
add esp, 4
neg eax
adc edx, 0
neg edx
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], ebx
jmp 0x455ea4
cmp ebx, 2
jne 0x455154
push 1
push 0
mov eax, edi
call fcn.0044bf00
fchs
fstp qword [esi]
add esp, 8
mov dword [esi + 8], ebx
jmp 0x455ea4
xor ecx, ecx
cmp eax, 0x3c
setge cl
mov dword [ebp - 0x30], ecx
mov ecx, dword [edi + 8]
cmp ecx, 4
jne 0x454982
cmp ebx, edx
je 0x45503e
cmp eax, 9
je 0x454faa
mov dword [ebp - 0x1c], 0xffffffff
cmp eax, 0x3c
jne 0x454fb1
mov dword [ebp - 0x1c], 1
push 1
cmp ebx, 1
jne 0x454fdc
mov ecx, edi
call fcn.0044be70
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 4], edx
add esp, 4
cdq
add eax, dword [esi]
adc edx, dword [esi + 4]
push edx
mov edx, dword [edi]
push eax
push edx
call fcn.00412660
jmp 0x454ff5
push 0
mov eax, edi
call fcn.0044bf00
fst qword [esi]
fiadd dword [ebp - 0x1c]
mov eax, dword [edi]
fstp qword [esp]
push eax
call fcn.00412690
cmp dword [ebp - 0x30], 0
je 0x454f72
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x45500e
mov ecx, dword [edi + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 1
jne 0x455019
mov dword [esi], edi
jmp 0x455e9d
cmp ebx, 1
jne 0x45502f
mov eax, dword [ebp - 0x1c]
cdq
add dword [esi], eax
mov dword [esi + 8], ebx
adc dword [esi + 4], edx
jmp 0x455ea4
fild dword [ebp - 0x1c]
mov dword [esi + 8], ebx
fadd qword [esi]
fstp qword [esi]
jmp 0x455ea4
cmp ecx, 4
jne 0x454982
mov eax, dword [edi]
cmp byte [eax + 0x17], dl
jne 0x455053
mov ecx, dword [eax + 0xc]
jmp 0x455055
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x455060
call fcn.0042d7f0
mov ecx, dword [edi]
call fcn.00412600
cmp dword [ebp - 0x30], 0
je 0x454982
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x455080
mov edx, dword [edi + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
jne 0x454982
mov dword [esi], edi
jmp 0x455e9d
mov eax, dword [edi + 8]
cmp eax, 4
jne 0x455137
mov eax, dword [edi]
cmp byte [eax + 0x17], dl
jne 0x4550a7
mov ecx, dword [eax + 0xc]
jmp 0x4550a9
mov ecx, eax
test byte [ecx + 0x15], 2
je 0x4550cd
mov dword [esi + 8], 1
mov edi, dword [edi]
cmp byte [edi + 0x17], dl
jne 0x4550c0
mov edi, dword [edi + 0xc]
mov eax, dword [edi]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x455ea4
call fcn.00403690
mov dword [esi + 8], 1
mov edi, dword [edi]
cmp byte [edi + 0x17], 0
jne 0x4550e4
mov edi, dword [edi + 0xc]
test byte [edi + 0x15], 8
je 0x4550f1
mov eax, edi
call fcn.00401150
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x455113
test byte [edi + 0x15], 4
je 0x455105
mov eax, edi
call fcn.0042d7f0
mov eax, dword [edi + 8]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x455ea4
cmp al, 2
jne 0x455127
call fcn.00401000
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x455ea4
mov eax, 0x4a857d
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x455ea4
cmp eax, 6
jne 0x455154
mov dword [esi + 8], 1
mov eax, dword [edi]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x455ea4
cmp ebx, edx
jne 0x455162
mov dword [esi], 0x4957f9
mov dword [esi + 8], edx
jmp 0x455ea4
xor eax, eax
cmp ebx, 1
sete al
mov ecx, edi
push eax
call fcn.0044be70
add esp, 4
cmp dword [esi + 8], 0x38
jne 0x4551b2
test edx, edx
ja 0x45519d
jb 0x455186
cmp eax, 0xffffffff
ja 0x45519d
not eax
mov dword [esi + 4], 0
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x455ea4
not eax
not edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x455ea4
cmp eax, 0x1000
jae 0x4551cd
xor eax, eax
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x455ea4
movzx eax, byte [eax]
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x455ea4
cmp dword [ebp - 0x18], edx
je 0x4547b2
mov ecx, dword [ebp - 0x18]
dec ecx
mov dword [ebp - 0x18], ecx
lea ecx, [ebp + ecx*4 - 0xcac]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx + 8]
cmp ecx, 8
jge 0x4547b2
cmp eax, 0x12
jne 0x45524d
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x28]
mov dword [esi + 0xc], edx
cmp dword [esi + 8], 6
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xc], ecx
jne 0x455ea4
mov eax, dword [esi]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x455ea4
cmp eax, 0x1e
jg 0x455341
cmp eax, 0x13
jl 0x455341
cmp ecx, 4
je 0x455272
mov dword [esi], 0x4957f9
mov dword [esi + 8], edx
jmp 0x455ea4
add eax, 0xffffffed
cmp eax, 0xb
ja case.default.0x45527e
jmp dword [eax*4 + 0x4564a8]
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ecx]
mov eax, edi
call fcn.00470fe0
test eax, eax
je 0x456261
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x4552ab
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 2
jne 0x455cce
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 - 0x28]
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 0x455ea4
mov dword [esi + 8], 0x31
jmp case.default.0x45527e
mov dword [esi + 8], 0x32
jmp case.default.0x45527e
mov dword [esi + 8], 0x33
jmp case.default.0x45527e
mov dword [esi + 8], 0x34
jmp case.default.0x45527e
mov dword [esi + 8], 0x35
jmp case.default.0x45527e
mov dword [esi + 8], 0x2c
jmp case.default.0x45527e
mov dword [esi + 8], 0x2d
jmp case.default.0x45527e
mov dword [esi + 8], 0x2e
jmp case.default.0x45527e
mov dword [esi + 8], 0x2f
jmp case.default.0x45527e
mov dword [esi + 8], 0x30
jmp case.default.0x45527e
mov dword [esi + 8], 0x2b
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
mov dword [ebp - 0x1c], eax
cmp dword [esi + 8], 0x2b
je 0x4558c3
cmp dword [ebp - 0x5c], 0
je 0x4558c3
mov eax, dword [ebp - 0x20]
call fcn.0044bd30
mov ebx, eax
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x4558c3
cmp dword [ebp - 0x5c], 1
jne 0x45537b
cmp ebx, 1
jne 0x45537b
cmp dword [esi + 8], 0x34
jne 0x455390
mov eax, dword [esi + 8]
cmp eax, 0x30
jg 0x45566c
cmp eax, 0x2c
jl 0x45566c
xor ecx, ecx
cmp dword [ebp - 0x5c], 1
sete cl
push ecx
mov ecx, edi
call fcn.0044be70
mov ecx, dword [ebp - 0x20]
mov edi, edx
xor edx, edx
add esp, 4
cmp dword [ebp - 0x30], 1
mov ebx, eax
sete dl
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], edi
push edx
call fcn.0044be70
mov ecx, dword [esi + 8]
add ecx, 0xffffffdc
add esp, 4
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x14], 1
cmp ecx, 0x17
ja case.0x4553e2.43
jmp dword [ecx*4 + 0x4564d8]
add eax, ebx
adc edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
sub eax, ebx
sbb edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
push edi
push ebx
push edx
push eax
call fcn.00488490
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
cmp eax, ebx
jne 0x455449
cmp edx, edi
jne 0x455449
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
mov edx, dword [ebp - 0x14]
xor eax, eax
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
cmp eax, ebx
jne 0x455465
cmp edx, edi
je 0x455449
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
cmp edx, edi
jl 0x455449
jg 0x455486
cmp eax, ebx
jbe 0x455449
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
cmp edx, edi
jg 0x455449
jl 0x4554a7
cmp eax, ebx
jae 0x455449
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
cmp edx, edi
jl 0x455449
jg 0x4554c8
cmp eax, ebx
jb 0x455449
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
cmp edx, edi
jg 0x455449
jl 0x4554f1
cmp eax, ebx
ja 0x455449
mov edx, dword [ebp - 0x14]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
and eax, ebx
and edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
or eax, ebx
or edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
xor eax, ebx
xor edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
mov ecx, ebx
call fcn.00490a70
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
mov ecx, ebx
call fcn.00490a40
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
mov ecx, ebx
or ecx, dword [ebp - 0x78]
jne 0x45558c
mov edx, ecx
mov dword [esi], 0x4957f9
mov dword [ebp - 0x14], ecx
mov dword [esi + 8], edx
jmp 0x455e74
mov ecx, dword [ebp - 0x78]
push ecx
push ebx
push edx
push eax
call fcn.0048ff70
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x455e74
mov ecx, eax
or ecx, edx
jne 0x4555d8
test edi, edi
jg 0x45562e
jl 0x4555c0
test ebx, ebx
jae 0x45562e
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x14]
mov dword [esi], 0x4957f9
mov dword [esi + 8], edx
jmp 0x455e74
test edx, edx
jg 0x45562e
jl 0x4555e2
test eax, eax
jae 0x45562e
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], edx
fild qword [ebp - 0x7c]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x84]
fstp qword [esp]
call fcn.0042e610
cmp dword [ebp - 0x30], 0
fst qword [esi]
je 0x455637
push 0
push 2
push edi
push ebx
call fcn.00490980
or eax, edx
je 0x455637
fchs
fstp qword [esi]
jmp 0x455639
mov dword [ebp - 0x30], 0
jmp 0x4555f9
fstp st(0)
test edi, edi
jg 0x455655
jl 0x455643
test ebx, ebx
jae 0x455655
mov dword [ebp - 0x14], 2
mov edx, dword [ebp - 0x14]
mov dword [esi + 8], edx
jmp 0x455e74
fld qword [esi]
call fcn.0048fef6
mov dword [esi + 4], edx
mov dword [esi], eax
mov edx, dword [ebp - 0x14]
mov dword [esi + 8], edx
jmp 0x455e74
xor eax, eax
cmp dword [ebp - 0x5c], 2
sete al
push eax
push 1
mov eax, edi
call fcn.0044bf00
fstp qword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp ebx, 2
sete cl
push ecx
push 1
call fcn.0044bf00
fst qword [ebp - 0x74]
mov ecx, dword [esi + 8]
add esp, 0x10
cmp ecx, 0x24
jl 0x4556ad
mov ebx, 1
cmp ecx, 0x2a
jle 0x4556b2
mov ebx, 2
lea eax, [ecx - 0x24]
cmp eax, 0x17
ja case.0x4556c1.43
movzx edx, byte [eax + 0x456568]
jmp dword [edx*4 + 0x456538]
fadd qword [ebp - 0x34]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x455e74
fsub qword [ebp - 0x34]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x455e74
fmul qword [ebp - 0x34]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x455e74
fld qword [ebp - 0x34]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x455713
fstp st(1)
mov dword [esi], 0x4957f9
xor ebx, ebx
fstp st(0)
mov dword [esi + 8], ebx
jmp 0x455e74
fdivp st(1)
fst qword [esi]
cmp ecx, 0x35
jne case.0x4556c1.43
sub esp, 8
fstp qword [esp]
call fcn.0042e670
fstp qword [esi]
mov dword [esi + 8], ebx
jmp 0x455e74
fld qword [ebp - 0x34]
fucompp
fnstsw ax
test ah, 0x44
jp 0x455751
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x455e74
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x455e74
fld qword [ebp - 0x34]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x455751
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x455e74
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jne 0x455751
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x455e74
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 5
jp 0x455751
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x455e74
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 1
jne 0x455751
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x455e74
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jp 0x455751
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x455e74
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x455810
mov edi, 1
jmp 0x455812
xor edi, edi
fld st(1)
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x45583b
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jne 0x45583d
fstp st(0)
xor ebx, ebx
mov dword [esi], 0x4957f9
mov dword [esi + 8], ebx
jmp 0x455e74
fstp st(0)
test edi, edi
je 0x455867
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.0042e6a0
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x45582b
fld qword [ebp - 0x74]
fchs
fld qword [ebp - 0x34]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0042e610
fstp qword [esi]
test edi, edi
je 0x45570b
fld qword [0x49d728]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.0042e6a0
sub esp, 8
fstp qword [esp]
call fcn.0042e600
fld1
fucompp
fnstsw ax
test ah, 0x44
jp 0x45570b
fld qword [esi]
mov dword [esi + 8], ebx
fchs
fstp qword [esi]
jmp 0x455e74
mov eax, dword [esi + 8]
add eax, 0xffffffdc
cmp eax, 2
ja 0x455924
mov ecx, edi
call fcn.0044c170
mov ecx, dword [ebp - 0x20]
mov ebx, eax
call fcn.0044c170
test ebx, ebx
jne 0x4558e7
test eax, eax
je 0x455924
xor ecx, ecx
cmp ebx, eax
sete cl
xor edx, edx
cmp dword [esi + 8], 0x26
setne dl
cmp edx, ecx
jne 0x45590f
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x455ea4
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], 1
jmp 0x455ea4
lea ecx, [ebp - 0xdac]
mov eax, edi
call fcn.0044bfb0
mov ebx, eax
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x30], ebx
call fcn.0044bfb0
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 8]
add eax, 0xffffffdc
mov dword [ebp - 0x14], 1
cmp eax, 7
ja case.default.0x45595d
jmp dword [eax*4 + 0x456580]
mov eax, dword [0x4a3440]
cmp byte [eax + 0xce], 0
push ebx
jne 0x455981
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00481691
add esp, 8
jmp 0x45598b
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4559a0
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x455e6e
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x455e6e
mov eax, dword [ebp - 0x24]
push ebx
push eax
call fcn.004817e1
add esp, 8
test eax, eax
jne 0x4559a0
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x455e6e
mov ecx, dword [0x4a3440]
mov al, byte [ecx + 0xce]
push ebx
test al, al
jne 0x4559ec
mov edx, dword [ebp - 0x24]
push edx
call fcn.00481691
jmp 0x455a17
cmp al, 2
jne 0x455a0e
mov eax, dword [ebp - 0x24]
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 0x455e6e
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004817e1
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 0x455e6e
mov eax, dword [0x4a3440]
mov al, byte [eax + 0xce]
push ebx
test al, al
jne 0x455a49
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00481691
jmp 0x455a62
cmp al, 2
jne 0x455a59
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x455a65
mov eax, dword [ebp - 0x24]
push eax
call fcn.004817e1
add esp, 8
test eax, eax
jle 0x4559a0
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x455e6e
mov ecx, dword [0x4a3440]
mov al, byte [ecx + 0xce]
push ebx
test al, al
jne 0x455a9a
mov edx, dword [ebp - 0x24]
push edx
call fcn.00481691
jmp 0x455ab3
cmp al, 2
jne 0x455aaa
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x455ab6
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004817e1
add esp, 8
test eax, eax
jns 0x4559a0
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x455e6e
mov edx, dword [0x4a3440]
mov al, byte [edx + 0xce]
push ebx
test al, al
jne 0x455aeb
mov eax, dword [ebp - 0x24]
push eax
call fcn.00481691
jmp 0x455b04
cmp al, 2
jne 0x455afb
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x455b07
mov edx, dword [ebp - 0x24]
push edx
call fcn.004817e1
add esp, 8
cmp eax, 0xffffffff
jle 0x4559a0
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x455e6e
mov eax, dword [0x4a3440]
mov al, byte [eax + 0xce]
push ebx
test al, al
jne 0x455b3c
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00481691
jmp 0x455b55
cmp al, 2
jne 0x455b4c
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x455b58
mov eax, dword [ebp - 0x24]
push eax
call fcn.004817e1
add esp, 8
cmp eax, 1
jge 0x4559a0
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x455e6e
cmp dword [edi + 8], 4
jne 0x455b81
mov eax, dword [edi]
call fcn.00412b10
jmp 0x455b8f
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x455b86
sub eax, edx
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0x4c], eax
je 0x455bb2
mov ecx, eax
mov eax, dword [ebp - 0x1c]
push ecx
push ebx
call fcn.00471c60
test eax, eax
je 0x455bb2
mov edx, dword [ebp - 0x1c]
mov dword [esi], edx
jmp 0x455e9d
mov eax, dword [ebp - 0x20]
cmp dword [eax + 8], 4
jne 0x455bc6
mov ecx, eax
mov eax, dword [ecx]
call fcn.00412b10
jmp 0x455bd9
mov eax, dword [ebp - 0x24]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x455bd0
sub eax, edx
cmp dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x70], eax
lea eax, [eax + edx + 1]
mov dword [ebp - 0x14], eax
jne 0x455da1
mov ebx, dword [ebp - 0x54]
test ebx, ebx
je 0x455c0f
cmp dword [ebp - 0x18], 0
jne 0x455c0f
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + 0x18], 0x41
jne 0x455c0f
mov dword [ebp - 0x44], 1
jmp 0x455c54
mov edx, dword [ebp - 0x28]
cmp dword [edx + 0x18], 0x13
jne 0x455da1
cmp dword [ebp - 0x18], 0
je 0x455da1
mov eax, dword [ebp - 0x44]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 4
jne 0x455da1
mov ebx, dword [eax]
mov al, byte [ebx + 0x17]
test al, al
jne 0x455c45
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 1
jne 0x455da1
mov dword [ebp - 0x44], 0
test ebx, ebx
je 0x455da1
cmp byte [ebx + 0x17], 0
jne 0x455c67
mov eax, dword [ebx + 0xc]
jmp 0x455c69
mov eax, ebx
mov cl, byte [eax + 0x17]
cmp cl, 1
jne 0x455c76
mov eax, dword [eax + 8]
jmp 0x455c80
cmp cl, 2
jne 0x455c87
call fcn.00401000
cmp eax, 0x4a857d
jne 0x455c89
xor eax, eax
cmp eax, dword [ebp - 0x24]
jne 0x455cd5
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
push edx
push eax
mov eax, ebx
call fcn.00471c60
test eax, eax
je 0x455da1
cmp dword [ebp - 0x44], 0
jne case.0x456128.3
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x1c]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
dec eax
mov dword [esi + 0xc], ecx
mov edx, dword [ebp + eax*4 - 0xcac]
mov dword [ebp - 0x18], eax
mov eax, dword [edx]
mov dword [esi], eax
jmp 0x455e9d
cmp eax, dword [ebp - 0x30]
je 0x455da1
mov ecx, dword [ebp - 0x14]
push 1
push 0
dec ecx
push ecx
push 0
push ebx
call fcn.004715e0
test eax, eax
je 0x456261
cmp byte [ebx + 0x17], 0
jne 0x455d02
mov edi, dword [ebx + 0xc]
jmp 0x455d04
mov edi, ebx
test byte [edi + 0x15], 8
je 0x455d11
mov eax, edi
call fcn.00401150
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x455d2a
test byte [edi + 0x15], 4
je 0x455d25
mov eax, edi
call fcn.0042d7f0
mov edi, dword [edi + 8]
jmp 0x455d3c
cmp al, 2
jne 0x455d37
call fcn.00401000
mov edi, eax
jmp 0x455d3c
mov edi, 0x4a857d
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x455d54
mov edx, dword [ebp - 0x24]
push eax
push edx
push edi
call fcn.00489e00
mov eax, dword [ebp - 0x70]
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x30]
inc ecx
push ecx
push edx
add eax, edi
push eax
call fcn.00489e00
add esp, 0xc
push 0
mov eax, ebx
call fcn.00412ba0
cmp dword [ebp - 0x44], 0
jne case.0x456128.3
mov eax, dword [ebp - 0x28]
add eax, 0x10
mov dword [ebp - 0x28], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0xcb0]
mov edx, dword [ecx]
dec eax
mov dword [ebp - 0x18], eax
mov dword [esi], edx
jmp 0x455e9d
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp + 0x20]
sub edx, eax
add edx, dword [ecx]
mov ecx, dword [ebp - 0x14]
cmp ecx, edx
ja 0x455dc0
mov dword [esi], eax
add eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x455e14
cmp ecx, 0x1001
jae 0x455de4
cmp dword [ebp - 0x40], 0x9c40
jae 0x455de4
mov ebx, dword [ebp - 0x14]
mov eax, ebx
call fcn.0048af30
add dword [ebp - 0x40], ebx
mov eax, esp
mov dword [esi], eax
jmp 0x455e14
mov ebx, dword [ebp - 0x38]
cmp ebx, 0xc8
je 0x45624d
mov edx, dword [ebp - 0x14]
push edx
call fcn.00481849
add esp, 4
mov dword [ebp + ebx*4 - 0x4ac], eax
mov dword [esi], eax
test eax, eax
je 0x45624d
inc ebx
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 0x70]
test ebx, ebx
je 0x455e2b
mov eax, dword [ebp - 0x24]
mov ecx, dword [esi]
push ebx
push eax
push ecx
call fcn.00489e00
add esp, 0xc
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [esi]
inc edx
push edx
push eax
add ecx, ebx
push ecx
call fcn.00489e00
mov edx, dword [ebp - 0x20]
xor eax, eax
add esp, 0xc
cmp dword [edx + 8], eax
je 0x455e5c
cmp dword [edi + 8], eax
je 0x455e5c
mov dword [ebp - 0x14], 5
mov dword [esi + 4], eax
jmp 0x455e6e
mov dword [ebp - 0x14], eax
jmp 0x455e6e
mov dword [esi], 0x4957f9
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
mov dword [esi + 8], eax
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x455ea4
mov eax, esi
call fcn.00470fe0
test eax, eax
je 0x456261
mov al, byte [ebx + 0x17]
test al, al
jne 0x455e97
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 2
je 0x455ea4
mov dword [esi], ebx
mov dword [esi + 8], 4
cmp dword [esi + 0xc], 0
je 0x455f45
mov eax, dword [esi + 8]
lea ecx, [eax - 1]
cmp ecx, 4
ja case.0x455eb9.3
jmp dword [ecx*4 + 0x4565a0]
mov eax, dword [esi]
push 0
call fcn.004126c0
jmp case.0x455eb9.1
cmp dword [esi + 4], 0
je 0x455ed8
mov eax, 1
jmp case.0x455eb9.1
push 0
push 1
push 0
push 1
xor ecx, ecx
mov eax, esi
call fcn.0044bfb0
call fcn.0046e950
add esp, 0x10
jmp case.0x455eb9.1
xor eax, eax
mov ecx, eax
mov eax, esi
call fcn.0044bc70
mov ecx, dword [esi + 0xc]
mov edx, 0x20
cmp dword [ecx + 8], edx
je 0x455f8b
mov edi, dword [ebp - 0x28]
xor ebx, ebx
cmp dword [ecx + 8], 0x21
sete bl
cmp eax, ebx
jne 0x455f7d
mov edi, ecx
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x28], edi
test ecx, ecx
je 0x455f30
cmp dword [ecx + 8], edx
jne 0x455f12
cdq
mov dword [esi + 8], 1
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], ecx
jmp 0x455ea4
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x18]
cmp ebx, edi
jle 0x455f6c
nop
mov eax, dword [ebp + ebx*4 - 0xcb0]
dec ebx
cmp dword [eax + 8], 6
jne 0x455f68
mov eax, dword [eax]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
cmp ebx, edi
jg 0x455f50
mov dword [ebp + edi*4 - 0xcac], esi
inc edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x58], edi
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp + 0x14]
add edi, 0x10
jmp 0x454567
test eax, eax
jne 0x455f7a
mov edi, dword [esi + 0xc]
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp + 0x14]
add edi, 0x10
jmp 0x454567
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
push edx
jmp 0x456252
cmp dword [ebx], 1
je 0x455fb7
mov dword [ebp - 0x3c], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x68]
test eax, eax
je case.0x456128.3
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x64]
push edx
push eax
call fcn.00471f00
add esp, 0xc
jmp case.0x456128.3
mov esi, dword [esi + 0xc]
test esi, esi
je 0x455fef
push esi
call fcn.004816a8
add esp, 4
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.00456a10
jmp case.0x456128.3
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
push edx
push 0
push str.Out_of_memory.
call fcn.0042cfd0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.00456a10
jmp 0x456261
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.0042cfd0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.00456a10
jmp 0x456261
mov eax, dword [ebp + 8]
mov cl, byte [eax]
cmp cl, 3
je case.0x456128.3
cmp ebx, 1
jne 0x4547b2
cmp dword [ebp - 0x54], 0
mov eax, dword [ebp - 0xcac]
mov esi, eax
je 0x45608e
mov ebx, dword [ebp - 0x54]
call fcn.00470fe0
test eax, eax
je 0x456261
jmp case.0x456128.3
cmp cl, 0x11
je 0x45633b
cmp cl, 0x6a
je 0x45633b
cmp cl, 0x6b
je 0x45633b
test edx, edx
je 0x456114
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x4560fd
cmp ecx, 2
je 0x4560fd
cmp ecx, 6
je 0x4560fd
cmp ecx, 4
jne 0x456114
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x4560cf
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x456114
mov dword [edx + 8], 6
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x4560e7
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, 0x4957f9
jmp 0x4563a2
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, 0x4957f9
jmp 0x4563a2
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x3c], edx
cmp ecx, 6
ja case.0x456128.3
jmp dword [ecx*4 + 0x4565b4]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov edi, dword [ebp - 0x3c]
push ecx
push edx
call fcn.00401050
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456144
sub eax, edx
lea ecx, [eax + 1]
mov eax, dword [ebp + 0x18]
add dword [eax], ecx
jmp case.0x456128.3
mov edx, dword [0x4a3440]
fld qword [eax]
mov edi, dword [ebp - 0x3c]
sub esp, 8
add edx, 0x74
fstp qword [esp]
push edx
mov esi, 0x100
call fcn.0046eac0
lea ecx, [eax + 1]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add dword [eax], ecx
jmp case.0x456128.3
mov eax, dword [eax]
cmp ecx, 4
jne 0x4561f2
cmp byte [eax + 0x17], 0
jne 0x45619b
mov edi, dword [eax + 0xc]
jmp 0x45619d
mov edi, eax
test byte [edi + 0x15], 8
je 0x4561aa
mov eax, edi
call fcn.00401150
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x4561cd
test byte [edi + 0x15], 4
je 0x4561be
mov eax, edi
call fcn.0042d7f0
mov edx, dword [edi + 8]
mov eax, dword [esi]
mov dword [ebp + 0x14], edx
call fcn.00412b10
jmp 0x456201
cmp al, 2
jne 0x4561e2
call fcn.00401000
mov dword [ebp + 0x14], eax
mov eax, dword [esi]
call fcn.00412b10
jmp 0x456201
mov eax, dword [esi]
mov dword [ebp + 0x14], 0x4a857d
call fcn.00412b10
jmp 0x456201
mov dword [ebp + 0x14], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4561f8
sub eax, edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea esi, [eax + 1]
mov eax, dword [ebp + 0xc]
add eax, eax
movzx eax, word [edx + eax*8 + 2]
mov ecx, 0xff
mov dword [ebp - 0x14], esi
cmp ax, cx
jae 0x456223
mov eax, ecx
mov edx, dword [ebp + 0x28]
lea eax, [eax + edx + 1]
cmp esi, eax
jbe 0x456320
mov ecx, dword [ebp + 0x20]
mov edi, dword [ecx]
sub edi, eax
add edi, esi
push edi
mov dword [ebp + 0x28], edi
call fcn.00481849
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x456276
push 0x4957f9
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.
call fcn.0042cfd0
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x3c], 0
mov dword [edx], 0
jmp case.0x456128.3
cmp edi, 0x400000
jbe 0x456284
inc dword [0x4a8c28]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax]
mov edi, dword [ecx]
sub edi, eax
je 0x45629d
push edi
push eax
push ebx
call fcn.00489e00
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 - 0x3c], eax
call fcn.00489e00
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
add esp, 0xc
push eax
call fcn.004816a8
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx]
add esp, 4
cmp eax, 0x400000
jbe 0x4562d6
dec dword [0x4a8c28]
mov edx, dword [ebp + 0x1c]
mov edi, dword [edx]
add edi, eax
xor eax, eax
cmp dword [ebp + 0xc], eax
jle 0x45630c
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edx]
cmp ecx, edx
jb 0x456306
cmp ecx, edi
jae 0x456306
mov esi, ebx
sub esi, edx
add esi, ecx
mov ecx, dword [ebp + 0x24]
mov dword [ecx + eax*4], esi
mov esi, dword [ebp - 0x14]
inc eax
cmp eax, dword [ebp + 0xc]
jl 0x4562e4
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.0x456128.3
mov edi, dword [ebp + 0x18]
mov eax, dword [edi]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x456337
push esi
push ecx
push eax
call fcn.00482250
add esp, 0xc
add dword [edi], esi
jmp case.0x456128.3
mov ecx, dword [eax + 8]
cmp ecx, 6
ja case.0x456347.3
jmp dword [ecx*4 + 0x4565d0]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x456347.6
mov dword [ebp - 0x3c], 0x4957f9
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x45637c
mov eax, dword [ebp + esi*4 - 0x4b0]
dec esi
push eax
call fcn.004816a8
add esp, 4
test esi, esi
jne 0x456367
mov esi, dword [ebp - 0x58]
test esi, esi
je 0x45639f
mov eax, dword [ebp + esi*4 - 0xcb0]
dec esi
cmp dword [eax + 8], 6
jne 0x45639b
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
jne 0x456383
mov eax, dword [ebp - 0x3c]
lea esp, [ebp - 0xdbc]
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.0x456347.6
jmp case.0x456128.6
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x456347.0
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jmp 0x456353
mov eax, dword [eax]
call fcn.0044bb80
jmp 0x4563f0
mov esi, dword [eax]
call fcn.0044bbe0
jmp 0x4563f0
mov eax, dword [ebp + 8]
test eax, eax
je case.0x456128.6
mov dword [ebp - 0x3c], 0x496ed0
jmp case.0x456128.3