Function at 0x45064c
Capabilities:
Query environment variable

Disassembly:
cmp dword [edi + 8], 0x3e
mov dword [ebp - 0x24], edi
je 0x451157
mov eax, 0x10
call fcn.004932a0
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, 7
jge 0x44fb6b
cmp eax, 6
jne 0x450f9a
mov eax, dword [esi + 4]
xor edi, edi
cmp eax, edi
je 0x44f99f
mov ecx, dword [esi]
mov dword [esi], 0x4a5c64
mov dword [esi + 8], edi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], eax
cmp dword [ecx], edi
je 0x44f87b
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
cmp eax, dword [ecx]
jae 0x44f795
cmp edi, 0xfd
jae 0x44f79f
mov dx, word [eax]
mov word [ebp + edi*2 - 0x28c], dx
add eax, 2
inc edi
cmp eax, dword [ecx]
jb 0x44f777
mov dword [ebp - 0x30], eax
cmp edi, 0xfd
jb 0x44f7ad
jmp 0x44f7a2
mov dword [ebp - 0x30], eax
cmp eax, dword [ecx]
jb 0x44f8b4
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx + 0x17]
cmp eax, 3
ja case.default.0x44f7b9
jmp dword [eax*4 + 0x4514c8]
mov eax, ebx
call fcn.00401160
cmp dword [0x4c0e70], 0
jne 0x44f804
cmp dword [ebx + 0xc], 0
jne 0x44f804
mov ecx, dword [ebx + 0x18]
push 0
lea eax, [ebp - 0x8c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x44f7fa
mov dword [0x4c449c], 0
dec eax
jmp 0x44f83f
mov dword [0x4c449c], ebx
xor eax, eax
jmp 0x44f83f
mov eax, dword [ebx + 0xc]
shr eax, 1
jmp 0x44f83f
mov ecx, dword [ebx + 0xc]
push 0
call fcn.00469be0
jmp 0x44f83f
push 0
mov ecx, 0x4c2fe4
call fcn.00403a60
cmp eax, 0xffffffff
jne 0x44f83f
xor eax, eax
jmp 0x44f83f
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 0x44f8b4
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebx + 4]
lea edx, [ebp + edi*2 - 0x28c]
push edx
call fcn.00469be0
mov ecx, dword [ebp - 0x30]
add edi, eax
movzx eax, word [ebx + 0xa]
add ebx, 0xc
cmp dword [ebx], 0
lea edx, [ecx + eax*2]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x28], ebx
jne 0x44f76d
mov ecx, dword [ebp - 0x30]
movzx eax, word [ecx]
test ax, ax
je 0x44f8a2
cmp edi, 0xfd
jae 0x44f8aa
add ecx, 2
mov word [ebp + edi*2 - 0x28c], ax
movzx eax, word [ecx]
inc edi
test ax, ax
jne 0x44f886
cmp edi, 0xfd
jb 0x44f8b0
cmp word [ecx], 0
jne 0x44f8b4
test edi, edi
jne 0x44f8f6
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0
je 0x44f8c8
lea esp, [esp]
add eax, 0xc
cmp dword [eax], 0
jne 0x44f8c0
cmp byte [eax + 8], 0
je 0x450f9a
mov eax, dword [ebp - 0x68]
test eax, eax
je case.default.0x45121b
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je case.default.0x45121b
push eax
or eax, 0xffffffff
call fcn.00401200
jmp case.default.0x45121b
mov ebx, dword [ebp - 0x28]
xor eax, eax
mov word [ebp + edi*2 - 0x28c], ax
cmp byte [ebx + 8], al
je 0x44f945
push eax
push edi
lea ecx, [ebp - 0x28c]
push ecx
mov ecx, 0x4c3000
call fcn.0041ceb0
mov dword [ebx + 4], eax
test eax, eax
je 0x44f8d2
mov ecx, ebx
movzx edx, byte [ecx + 9]
cmp edx, dword [eax + 0x10]
jge 0x4510c2
cmp byte [ecx + 8], 2
jne 0x44f8d2
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x18]
add edi, 0x10
jmp 0x44f703
cmp word [ebp - 0x28c], ax
je 0x451312
lea eax, [ebp - 0x55]
push eax
push 0
push 3
lea ecx, [ebp - 0x88]
push ecx
push edi
lea edx, [ebp - 0x28c]
push edx
mov ecx, 0x4c3000
call fcn.0041e310
test eax, eax
jne 0x44f99d
movzx eax, byte [ebp - 0x55]
mov ecx, dword [ebp - 0x88]
push eax
push ecx
push edi
lea edx, [ebp - 0x28c]
push edx
mov ecx, 0x4c3000
call fcn.0041e680
test eax, eax
je 0x451312
mov dword [esi], eax
mov ecx, dword [esi]
mov al, byte [ecx + 0x17]
test al, al
jne 0x44f9ae
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
movzx eax, al
mov ebx, 1
sub eax, ebx
je 0x44fa71
sub eax, 3
jne 0x44faa7
mov eax, dword [ecx + 0x10]
cmp eax, 0x440730
jne 0x44f9e9
mov eax, dword [0x4bd4c4]
mov ecx, dword [eax + 8]
mov dword [esi], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 4], edx
mov dword [esi + 8], ebx
jmp 0x450f9a
cmp eax, 0x43e210
jne 0x44fa1c
mov eax, dword [ecx + 0x18]
cmp word [eax + 8], 0
jne 0x44fa0b
mov eax, ebx
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x450f9a
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x450f9a
cmp eax, 0x43eb50
jne 0x44fa34
mov dword [esi], ebx
mov dword [esi + 4], 0
mov dword [esi + 8], ebx
jmp 0x450f9a
cmp eax, 0x43ecf0
jne 0x44fa50
mov dword [esi], 4
mov dword [esi + 4], 0
mov dword [esi + 8], ebx
jmp 0x450f9a
cmp eax, 0x440de0
jne 0x44faa7
mov ecx, dword [0x4bd4c4]
mov edx, dword [ecx + 0x38]
mov dword [esi], edx
mov dword [esi + 4], 0
mov dword [esi + 8], ebx
jmp 0x450f9a
cmp dword [0x4c0e70], 0
jne 0x450f93
cmp byte [ecx + 0x17], 0
jne 0x44fa89
mov eax, dword [ecx + 0xc]
jmp 0x44fa8b
mov eax, ecx
test byte [eax + 0x15], 0xa
jne 0x450f93
xor edx, edx
cmp dword [eax + 0xc], edx
setne dl
mov eax, edx
test eax, eax
jne 0x450f93
push 0
call fcn.00469be0
lea edi, [ebx + eax]
cmp edi, ebx
jne 0x44fadf
mov eax, dword [esi]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x44fac4
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
je 0x450f93
mov dword [esi], 0x4a5c64
mov dword [esi + 8], 0
jmp 0x450f9a
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x48]
sub ecx, dword [edx]
mov eax, dword [ebp + 0x20]
mov edx, dword [eax]
sar ecx, 1
sub edx, ecx
cmp edi, edx
ja 0x44faff
mov ebx, dword [ebp - 0x48]
lea eax, [ebx + edi*2]
mov dword [ebp - 0x48], eax
jmp 0x44fb4e
cmp edi, 0x1001
jae 0x44fb1f
cmp dword [ebp - 0x4c], 0x9c40
jae 0x44fb1f
lea eax, [edi + edi]
call fcn.00490a60
add dword [ebp - 0x4c], edi
mov ebx, esp
jmp 0x44fb4e
mov ebx, dword [ebp - 0x2c]
cmp ebx, 0xc8
je 0x4510d0
lea ecx, [edi + edi]
push ecx
call fcn.00481e64
add esp, 4
mov dword [ebp + ebx*4 - 0x5ac], eax
test eax, eax
je 0x4510d0
inc dword [ebp - 0x2c]
mov ebx, eax
mov ecx, dword [esi]
push ebx
call fcn.00469be0
mov dword [esi], ebx
mov dword [esi + 4], 0
mov dword [esi + 8], 4
jmp 0x450f9a
cmp eax, 0x3b
jne 0x44feb9
mov ecx, dword [esi]
movzx eax, byte [ecx + 9]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x20], edx
cmp eax, ebx
jg 0x44f8d2
mov ebx, dword [esi + 0xc]
sub dword [ebp - 0x18], eax
lea edi, [ebp - 0x28c]
mov dword [esi + 4], edi
xor edi, edi
mov dword [ebp - 0x38], ebx
mov dword [esi + 0xc], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 4], edi
cmp byte [ecx + 8], 2
mov edi, dword [ebp - 0x18]
sete cl
movzx ecx, cl
push ecx
push eax
mov eax, dword [ebp + 0x10]
lea edi, [ebp + edi*4 - 0xdac]
push edi
push esi
push eax
lea ecx, [ebp - 0x64]
push ecx
push edx
call fcn.00451670
test al, al
je 0x4510db
mov eax, dword [esi + 8]
cmp eax, 1
je 0x44fe8e
cmp eax, 2
je 0x44fe8e
cmp eax, 5
je 0x44fe8e
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x44fc1f
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x18], 0x3e
jne 0x44fc1f
mov eax, dword [ebp + 8]
cmp byte [eax], 3
mov dword [ebp - 0x50], 1
je 0x451112
mov edi, dword [ebp - 0x68]
jmp 0x44fc51
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x18], 0x10
mov dword [ebp - 0x50], 0
jne 0x44fc4f
test eax, eax
je 0x44fc4f
mov edi, dword [edi - 4]
cmp dword [edi + 8], 3
jne 0x44fc4f
mov edi, dword [edi]
mov al, byte [edi + 0x17]
test al, al
jne 0x44fc4b
mov edx, dword [edi + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
je 0x44fc51
xor edi, edi
mov ebx, dword [esi]
test edi, edi
je 0x44fd0c
mov eax, dword [0x4bd4c4]
mov ecx, dword [eax + 0xb4]
cmp ecx, dword [ebp - 0x20]
jne 0x44fc7b
cmp byte [edi + 0x16], 0
je 0x44fc7b
test byte [edi + 0x15], 4
je 0x44fd0c
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x44fc90
mov edx, dword [esi + 4]
push edx
push eax
mov eax, edi
call fcn.00469ea0
jmp 0x44fcd3
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x44fc95
sub eax, edx
sar eax, 1
cmp ebx, dword [0x4c2f38]
jne 0x44fcc8
cmp eax, 0x40
jb 0x44fcc8
push eax
push ebx
mov eax, edi
call fcn.00469ea0
xor eax, eax
mov dword [0x4c2f38], eax
mov dword [0x4c2f3c], eax
jmp 0x44fcd3
push edi
or eax, 0xffffffff
mov ecx, ebx
call fcn.00401200
cmp dword [ebp - 0x50], 0
jne 0x451112
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x18]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
lea eax, [ebp - 0x64]
mov dword [esi], edi
mov dword [esi + 8], 3
mov dword [ebp - 4], 0xffffffff
call fcn.00451bd0
jmp 0x450f9a
mov eax, dword [esi + 0xc]
mov edx, 1
test eax, eax
je 0x44fd38
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xc8
je 0x451126
cmp eax, ebx
jne 0x44fd2d
xor edx, edx
mov dword [ebp + ecx*4 - 0x5ac], eax
inc ecx
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x38]
mov dword [esi + 0xc], ecx
cmp word [ebx], 0
jne 0x44fd6c
lea eax, [ebp - 0x64]
mov dword [esi], 0x4a5c64
mov dword [esi + 8], 4
mov dword [esi + 4], 0
mov dword [ebp - 4], 0xffffffff
call fcn.00451bd0
jmp 0x450f9a
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x31], 0
je 0x44fd83
test edx, edx
je 0x44fdb7
xor edx, edx
cmp dword [ebp - 0x50], edx
sete dl
jmp 0x44fdb7
cmp ebx, dword [0x4c2f38]
jne 0x44fdb2
xor edx, edx
cmp dword [ebp - 0x50], edx
jne 0x44fdb7
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp eax, 0x3e
je 0x44fdb7
cmp eax, 0x3b
je 0x44fdb2
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x3e
jne 0x44fda0
jmp 0x44fdb7
mov edx, 1
mov dword [esi + 4], 0
mov dword [esi + 8], 4
test edx, edx
je 0x44fe7a
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x44fdd2
mov ecx, dword [ebp - 0x48]
sub eax, edx
mov edx, dword [ebp + 0x1c]
sub ecx, dword [edx]
sar eax, 1
lea edi, [eax + 1]
mov eax, dword [ebp + 0x20]
mov edx, dword [eax]
sar ecx, 1
sub edx, ecx
cmp edi, edx
ja 0x44fe0e
mov eax, dword [ebp - 0x48]
add edi, edi
push edi
push ebx
push eax
call fcn.00485e70
add esp, 0xc
add dword [ebp - 0x48], edi
jmp 0x44fe78
cmp edi, 0x1001
jae 0x44fe3c
cmp dword [ebp - 0x4c], 0x9c40
jae 0x44fe3c
lea eax, [edi + edi]
call fcn.00490a60
mov eax, esp
lea ecx, [edi + edi]
push ecx
push ebx
push eax
call fcn.00485e70
add esp, 0xc
add dword [ebp - 0x4c], edi
jmp 0x44fe78
cmp dword [ebp - 0x2c], 0xc8
je 0x45114f
lea edx, [edi + edi]
push edx
call fcn.00481e64
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov dword [ebp + ecx*4 - 0x5ac], eax
test eax, eax
je 0x45114f
lea edx, [edi + edi]
push edx
push ebx
push eax
call fcn.00485e70
add esp, 0xc
inc dword [ebp - 0x2c]
mov dword [esi], eax
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 0xffffffff
call fcn.00451bd0
jmp 0x450f9a
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x64]
mov dword [esi + 0xc], ebx
test eax, eax
je 0x450f9a
lea ecx, [ebp - 0x5c]
push ecx
lea edx, [ebp - 0x60]
push edx
push eax
call fcn.0046a0c0
add esp, 0xc
jmp 0x450f9a
cmp eax, 0x1c
jne 0x44fefc
cmp dword [esi + 0xc], 0
je 0x4510c2
test ebx, ebx
je 0x4510c2
mov eax, dword [ebp + ebx*4 - 0xdb0]
mov ecx, dword [eax]
dec ebx
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 dword [esi + 0xc], edx
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x18], ebx
mov dword [esi + 0xc], eax
jmp 0x450fa4
test ebx, ebx
je 0x44f8d2
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp + ecx*4 - 0xdb0]
dec ecx
cmp dword [ebx + 8], 7
mov dword [ebp - 0x18], ecx
jge 0x44f8d2
cmp eax, 0x1d
jne 0x44ff57
mov eax, dword [esi + 0xc]
test eax, eax
je 0x44f8d2
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0xc], ecx
mov edx, dword [ebx]
mov dword [esi], edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0xc], edx
mov dword [ebx + 8], 1
jmp 0x450f9a
cmp eax, 0xf
je 0x4510c2
cmp eax, 0x10
je 0x44ff7d
cmp eax, 0x1b
je 0x44ff7d
cmp eax, 0x28
je 0x44ff7d
mov eax, ebx
call fcn.00448c00
mov edi, eax
mov dword [ebp - 0x70], edi
jmp 0x44ff80
mov edi, dword [ebp - 0x70]
mov ecx, dword [esi + 8]
xor eax, eax
lea edx, [ecx - 8]
mov dword [ebp - 0x30], eax
cmp edx, 0x32
ja case.0x44ff9b.10
movzx edx, byte [edx + 0x4514f4]
jmp dword [edx*4 + 0x4514d8]
mov ecx, edi
mov eax, ebx
call fcn.00448b40
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], 1
jmp 0x450f9a
mov ecx, edi
mov eax, ebx
call fcn.00448b40
test eax, eax
jne 0x45090d
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x450f9a
cmp edi, 1
jne 0x450006
push edi
mov ecx, ebx
call fcn.00448cc0
add esp, 4
neg eax
adc edx, 0
neg edx
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], edi
jmp 0x450f9a
cmp edi, 2
jne 0x4501a6
push 1
push 0
mov eax, ebx
call fcn.00448d40
fchs
fstp qword [esi]
add esp, 8
mov dword [esi + 8], edi
jmp 0x450f9a
xor edx, edx
cmp ecx, 0x39
setge dl
mov dword [ebp - 0x38], edx
mov edx, dword [ebx + 8]
cmp edx, 3
jne 0x44facd
cmp edi, eax
je 0x4500ed
cmp ecx, 8
je 0x450059
mov dword [ebp - 0x20], 0xffffffff
cmp ecx, 0x39
jne 0x450060
mov dword [ebp - 0x20], 1
push 1
cmp edi, 1
jne 0x45008b
mov ecx, ebx
call fcn.00448cc0
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edx
cdq
add esp, 4
add eax, dword [esi]
adc edx, dword [esi + 4]
push edx
push eax
mov eax, dword [ebx]
push eax
call fcn.004124f0
jmp 0x4500a4
push 0
mov eax, ebx
call fcn.00448d40
fst qword [esi]
fiadd dword [ebp - 0x20]
mov ecx, dword [ebx]
fstp qword [esp]
push ecx
call fcn.00412520
cmp dword [ebp - 0x38], 0
je 0x450021
mov ebx, dword [ebx]
mov al, byte [ebx + 0x17]
test al, al
jne 0x4500bd
mov edx, dword [ebx + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
jne 0x4500c8
mov dword [esi], ebx
jmp 0x450f93
cmp edi, 1
jne 0x4500de
mov eax, dword [ebp - 0x20]
cdq
add dword [esi], eax
mov dword [esi + 8], edi
adc dword [esi + 4], edx
jmp 0x450f9a
fild dword [ebp - 0x20]
mov dword [esi + 8], edi
fadd qword [esi]
fstp qword [esi]
jmp 0x450f9a
cmp edx, 3
jne 0x44facd
mov ecx, dword [ebx]
push 1
push 0
push 0xffffffffffffffff
push 0
call fcn.004698a0
cmp dword [ebp - 0x38], 0
je 0x44facd
mov ebx, dword [ebx]
mov al, byte [ebx + 0x17]
test al, al
jne 0x45011e
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x44facd
mov dword [esi], ebx
jmp 0x450f93
mov ecx, dword [ebx + 8]
cmp ecx, 3
jne 0x450189
mov eax, dword [ebx]
cmp byte [eax + 0x17], 0
jne 0x450142
mov ecx, dword [eax + 0xc]
jmp 0x450144
mov ecx, eax
test byte [ecx + 0x15], 2
je 0x450169
mov dword [esi + 8], 1
mov ebx, dword [ebx]
cmp byte [ebx + 0x17], 0
jne 0x45015c
mov ebx, dword [ebx + 0xc]
mov eax, dword [ebx]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x450f9a
call fcn.00403480
mov dword [esi + 8], 1
mov ecx, dword [ebx]
push 1
call fcn.00401240
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x450f9a
cmp ecx, 5
jne 0x4501a6
mov dword [esi + 8], 1
mov eax, dword [ebx]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x450f9a
cmp edi, eax
jne 0x4501b4
mov dword [esi], 0x4a5c64
mov dword [esi + 8], eax
jmp 0x450f9a
xor ecx, ecx
cmp edi, 1
sete cl
push ecx
mov ecx, ebx
call fcn.00448cc0
add esp, 4
cmp dword [esi + 8], 0x35
jne 0x450204
test edx, edx
ja 0x4501ef
jb 0x4501d8
cmp eax, 0xffffffff
ja 0x4501ef
not eax
mov dword [esi + 4], 0
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x450f9a
not eax
not edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x450f9a
cmp eax, 0x1000
jae 0x45021f
xor eax, eax
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x450f9a
movzx eax, byte [eax]
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x450f9a
cmp dword [ebp - 0x18], eax
je 0x44f8d2
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x18], eax
lea eax, [ebp + eax*4 - 0xdac]
mov dword [ebp - 0x38], eax
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov eax, dword [eax + 8]
cmp eax, 7
jge 0x44f8d2
cmp ecx, 0x1b
jg 0x45034f
cmp ecx, 0x10
jl 0x45034f
cmp eax, 3
je 0x450288
mov dword [esi], 0x4a5c64
mov dword [esi + 8], 0
jmp 0x450f9a
lea eax, [ecx - 0x10]
cmp eax, 0xb
ja case.default.0x450294
jmp dword [eax*4 + 0x451528]
mov edx, dword [ebp - 0x40]
mov edi, dword [edx]
mov eax, ebx
call fcn.004692a0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x4502b9
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 2
jne 0x450cbc
mov edx, dword [ebx]
mov dword [esi], edx
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 8]
mov eax, dword [ebp - 0x24]
mov dword [esi + 8], ecx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0xc], edx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xc], ecx
jmp 0x450f9a
mov dword [esi + 8], 0x2e
jmp case.default.0x450294
mov dword [esi + 8], 0x2f
jmp case.default.0x450294
mov dword [esi + 8], 0x30
jmp case.default.0x450294
mov dword [esi + 8], 0x31
jmp case.default.0x450294
mov dword [esi + 8], 0x32
jmp case.default.0x450294
mov dword [esi + 8], 0x29
jmp case.default.0x450294
mov dword [esi + 8], 0x2a
jmp case.default.0x450294
mov dword [esi + 8], 0x2b
jmp case.default.0x450294
mov dword [esi + 8], 0x2c
jmp case.default.0x450294
mov dword [esi + 8], 0x2d
jmp case.default.0x450294
mov dword [esi + 8], 0x28
mov edx, dword [ebp - 0x40]
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
cmp dword [esi + 8], 0x28
je 0x4508c2
mov edi, dword [ebp - 0x70]
test edi, edi
je 0x4508c2
mov eax, dword [ebp - 0x40]
call fcn.00448c00
mov dword [ebp - 0x50], eax
test eax, eax
je 0x4508c2
cmp edi, 1
jne 0x450386
cmp eax, edi
jne 0x450386
cmp dword [esi + 8], 0x31
jne 0x45039b
mov eax, dword [esi + 8]
cmp eax, 0x2d
jg 0x45066b
cmp eax, 0x29
jl 0x45066b
xor ecx, ecx
cmp edi, 1
sete cl
push ecx
mov ecx, ebx
call fcn.00448cc0
mov ecx, dword [ebp - 0x40]
mov edi, edx
xor edx, edx
add esp, 4
cmp dword [ebp - 0x50], 1
mov ebx, eax
sete dl
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], edi
push edx
call fcn.00448cc0
mov ecx, dword [esi + 8]
add ecx, 0xffffffdf
add esp, 4
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x1c], 1
cmp ecx, 0x17
ja case.0x4503ec.40
jmp dword [ecx*4 + 0x451558]
add eax, ebx
adc edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
sub eax, ebx
sbb edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
push edi
push ebx
push edx
push eax
call fcn.00489a50
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
cmp eax, ebx
jne 0x450453
cmp edx, edi
jne 0x450453
mov edx, dword [ebp - 0x1c]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
mov edx, dword [ebp - 0x1c]
xor eax, eax
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
cmp eax, ebx
jne 0x45046f
cmp edx, edi
je 0x450453
mov edx, dword [ebp - 0x1c]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
cmp edx, edi
jl 0x450453
jg 0x450490
cmp eax, ebx
jbe 0x450453
mov edx, dword [ebp - 0x1c]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
cmp edx, edi
jg 0x450453
jl 0x4504b1
cmp eax, ebx
jae 0x450453
mov edx, dword [ebp - 0x1c]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
cmp edx, edi
jl 0x450453
jg 0x4504d2
cmp eax, ebx
jb 0x450453
mov edx, dword [ebp - 0x1c]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
cmp edx, edi
jg 0x450453
jl 0x4504fb
cmp eax, ebx
ja 0x450453
mov edx, dword [ebp - 0x1c]
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
and eax, ebx
and edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
or eax, ebx
or edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
xor eax, ebx
xor edx, edi
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
mov ecx, ebx
call fcn.00496d00
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
mov ecx, ebx
call fcn.00496cd0
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x450f70
mov ecx, ebx
or ecx, dword [ebp - 0x80]
jne 0x450596
mov edx, ecx
mov dword [esi], 0x4a5c64
mov dword [ebp - 0x1c], ecx
mov dword [esi + 8], edx
jmp 0x450f70
mov ecx, dword [ebp - 0x80]
push ecx
push ebx
push edx
push eax
call fcn.00496200
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x1c]
in al, 0x89
push es
mov dword [esi + 8], edx
jmp 0x450f70
mov ecx, eax
or ecx, edx
jne 0x4505da
test edi, edi
jg 0x45062d
jl 0x4505c2
test ebx, ebx
jae 0x45062d
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x1c]
mov dword [esi], 0x4a5c64
mov dword [esi + 8], edx
jmp 0x450f70
test edx, edx
jg 0x45062d
jl 0x4505e4
test eax, eax
jae 0x45062d
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
fild qword [ebp - 0x84]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x7c]
fstp qword [esp]
call fcn.0042c810
cmp dword [ebp - 0x38], 0
fst qword [esi]
je 0x450636
push 0
push 2
push edi
push ebx
call fcn.00496ae0
or eax, edx
je 0x450636
fchs
fstp qword [esi]
jmp 0x450638
mov dword [ebp - 0x38], 0
jmp 0x4505f8
fstp st(0)
test edi, edi
jg 0x450654
jl 0x450642
test ebx, ebx
jae 0x450654
mov dword [ebp - 0x1c], 2
mov edx, dword [ebp - 0x1c]
mov dword [esi + 8], edx
jmp 0x450f70
fld qword [esi]
call fcn.00496186
mov dword [esi + 4], edx
mov dword [esi], eax
mov edx, dword [ebp - 0x1c]
mov dword [esi + 8], edx
jmp 0x450f70
xor eax, eax
cmp edi, 2
sete al
push eax
push 1
mov eax, ebx
call fcn.00448d40
fstp qword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp dword [ebp - 0x50], 2
sete cl
push ecx
push 1
call fcn.00448d40
fst qword [ebp - 0x54]
mov ecx, dword [esi + 8]
add esp, 0x10
cmp ecx, 0x21
jl 0x4506ac
mov ebx, 1
cmp ecx, 0x27
jle 0x4506b1
mov ebx, 2
lea eax, [ecx - 0x21]
cmp eax, 0x17
ja 0x450708
movzx edx, byte [eax + 0x4515e8]
jmp dword [edx*4 + 0x4515b8]
fstp st(0)
mov dword [esi + 8], ebx
jmp 0x450f70
mov edi, dword [esi + 8]
lea eax, [edi - 0x21]
cmp eax, 2
ja 0x450922
mov eax, ebx
call fcn.00448f50
mov edx, eax
mov eax, dword [ebp - 0x40]
call fcn.00448f50
test edx, edx
jne 0x4508e6
test eax, eax
je 0x450922
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
cmp edi, 0x23
setne dl
cmp edx, ecx
jne 0x45090d
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x450f9a
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], 1
jmp 0x450f9a
lea ecx, [ebp - 0xfac]
mov eax, ebx
call fcn.00448df0
mov edi, eax
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x28c]
call fcn.00448df0
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 8]
add eax, 0xffffffdf
mov dword [ebp - 0x1c], 1
cmp eax, 7
ja case.default.0x450958
jmp dword [eax*4 + 0x451600]
mov eax, dword [0x4bd4c4]
cmp byte [eax + 0xe9], 0
push edi
jne 0x45097c
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00481dd9
add esp, 8
jmp 0x450986
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x45099b
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x450f6a
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x450f6a
mov eax, dword [ebp - 0x14]
lea esp, [esp]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x4509d6
test cx, cx
je 0x4509d2
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x4509d6
add eax, 4
add edi, 4
test cx, cx
jne 0x4509b0
xor eax, eax
jmp 0x4509db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45099b
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x450f6a
mov eax, dword [0x4bd4c4]
mov al, byte [eax + 0xe9]
test al, al
jne 0x450a20
mov ecx, dword [ebp - 0x14]
push edi
push ecx
call fcn.00481dd9
xor ecx, ecx
add esp, 8
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x450f6a
cmp al, 2
jne 0x450a43
mov edx, dword [ebp - 0x14]
push edi
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x450f6a
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x450a7e
test cx, cx
je 0x450a68
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x450a7e
add eax, 4
add edi, 4
test cx, cx
jne 0x450a46
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x450f6a
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x450f6a
mov edx, dword [0x4bd4c4]
mov al, byte [edx + 0xe9]
test al, al
jne 0x450ab6
mov eax, dword [ebp - 0x14]
push edi
push eax
call fcn.00481dd9
add esp, 8
jmp 0x450afb
cmp al, 2
jne 0x450ac7
mov ecx, dword [ebp - 0x14]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x450afb
mov eax, dword [ebp - 0x14]
lea ebx, [ebx]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x450af6
test cx, cx
je 0x450af2
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x450af6
add eax, 4
add edi, 4
test cx, cx
jne 0x450ad0
xor eax, eax
jmp 0x450afb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jle 0x45099b
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x450f6a
mov edx, dword [0x4bd4c4]
mov al, byte [edx + 0xe9]
test al, al
jne 0x450b33
mov eax, dword [ebp - 0x14]
push edi
push eax
call fcn.00481dd9
add esp, 8
jmp 0x450b72
cmp al, 2
jne 0x450b44
mov ecx, dword [ebp - 0x14]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x450b72
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x450b6d
test cx, cx
je 0x450b69
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x450b6d
add eax, 4
add edi, 4
test cx, cx
jne 0x450b47
xor eax, eax
jmp 0x450b72
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jns 0x45099b
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x450f6a
mov edx, dword [0x4bd4c4]
mov al, byte [edx + 0xe9]
test al, al
jne 0x450baa
mov eax, dword [ebp - 0x14]
push edi
push eax
call fcn.00481dd9
add esp, 8
jmp 0x450beb
cmp al, 2
jne 0x450bbb
mov ecx, dword [ebp - 0x14]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x450beb
mov eax, dword [ebp - 0x14]
mov edi, edi
mov cx, word [eax]
cmp cx, word [edi]
jne 0x450be6
test cx, cx
je 0x450be2
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x450be6
add eax, 4
add edi, 4
test cx, cx
jne 0x450bc0
xor eax, eax
jmp 0x450beb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, 0xffffffff
jle 0x45099b
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x450f6a
mov edx, dword [0x4bd4c4]
mov al, byte [edx + 0xe9]
test al, al
jne 0x450c24
mov eax, dword [ebp - 0x14]
push edi
push eax
call 0x4d1df4
add esp, 8
jmp 0x450c63
cmp al, 2
jne 0x450c35
mov ecx, dword [ebp - 0x14]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x450c63
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
cmp cx, word [edi]
jne 0x450c5e
test cx, cx
je 0x450c5a
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x450c5e
add eax, 4
add edi, 4
test cx, cx
jne 0x450c38
xor eax, eax
jmp 0x450c63
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, 1
jge 0x45099b
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x450f6a
cmp dword [ebx + 8], 3
jne 0x450c8c
mov eax, dword [ebx]
call fcn.00462956
jmp 0x450ca0
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x450c91
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x20], eax
je 0x450cc3
mov edx, eax
mov eax, dword [ebp - 0x30]
push edx
push edi
call 0x4b9ec1
test eax, eax
je 0x450cc3
mov eax, dword [ebp - 0x30]
mov dword [esi], eax
jmp 0x450f93
mov ecx, dword [ebp - 0x40]
cmp dword [ecx + 8], 3
jne 0x450cd7
mov edx, ecx
mov eax, dword [edx]
call fcn.004629a1
jmp 0x450cef
mov eax, dword [ebp - 0x14]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x450ce0
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x50], edx
jne 0x450e8a
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x450d28
cmp dword [ebp - 0x18], 0
jne 0x450d28
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x18], 0x3e
jne 0x450d28
mov dword [ebp - 0x38], 1
jmp 0x450d6e
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x18], 0x10
jne 0x450e8a
cmp dword [ebp - 0x18], 0
je 0x450e8a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 3
jne 0x450e8a
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x450d5e
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 1
jne 0x450e8a
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x450e8a
push 0
mov ecx, eax
call 0x4513be
cmp eax, dword [ebp - 0x14]
jne 0x450dcc
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
push edx
push edi
call 0x4b9fa0
test eax, eax
je 0x450e8a
cmp dword [ebp - 0x38], 0
jne case.default.0x45121b
mov eax, dword [ebp - 0x24]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0xdb0]
mov edx, dword [ecx]
dec eax
mov dword [ebp - 0x18], eax
mov dword [esi], edx
jmp 0x400dcb
cmp eax, edi
je 0x450e8a
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x1c]
push 1
push 0
dec eax
push eax
push 0
call 0x4b9a83
test eax, eax
je 0x451312
mov ecx, dword [ebp - 0x1c]
push 1
call 0x451435
cmp dword [ebp - 0x28], 0
mov ebx, eax
je 0x450e15
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
lea edx, [ecx + ecx]
push edx
push eax
push ebx
call 0x4d607e
add esp, 0xc
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
lea edx, [ecx + ecx + 2]
push edx
lea ecx, [ebx + eax*2]
push edi
push ecx
call 0x4d6096
mov edx, dword [ebp - 0x1c]
add esp, 0xc
cmp byte [edx + 0x17], 0
mov eax, edx
jne 0x450e3b
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x17], 2
jne 0x450e56
cmp dword [0x4c2ff0], 0
je 0x450e56
mov ecx, 0x4c2fe4
call fcn.00453f70
jmp 0x450e5a
and byte [eax + 0x15], 0x86
cmp dword [ebp - 0x38], 0
jne case.default.0x45121b
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x1c]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
dec eax
mov dword [esi + 0xc], ecx
mov edx, dword [ebp + eax*4 - 0xdac]
mov dword [ebp - 0x18], eax
mov eax, dword [edx]
mov dword [esi], eax
jmp 0x450f93
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp + 0x1c]
mov ecx, eax
sub ecx, dword [edx]
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
sar ecx, 1
sub edx, ecx
mov ecx, dword [ebp - 0x50]
cmp ecx, edx
ja 0x450eae
mov dword [esi], eax
lea eax, [eax + ecx*2]
mov dword [ebp - 0x48], eax
jmp 0x450f08
cmp ecx, 0x1001
jae 0x450ed5
cmp dword [ebp - 0x4c], 0x9c40
jae 0x450ed5
mov eax, dword [ebp - 0x50]
add eax, eax
call 0x4e0d25
mov ecx, dword [ebp - 0x50]
add dword [ebp - 0x4c], ecx
mov eax, esp
mov dword [esi], eax
jmp 0x450f08
cmp dword [ebp - 0x2c], 0xc8
je 0x4512fe
mov edx, dword [ebp - 0x50]
lea eax, [edx + edx]
push eax
call 0x4d214e
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov dword [ebp + ecx*4 - 0x5ac], eax
mov dword [esi], eax
test eax, eax
je 0x4512fe
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x28], 0
je 0x450f24
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
lea eax, [edx + edx]
mov edx, dword [esi]
push eax
push ecx
push edx
call 0x4d618d
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov edx, dword [esi]
lea ecx, [eax + eax + 2]
mov eax, dword [ebp - 0x28]
push ecx
lea ecx, [edx + eax*2]
push edi
push ecx
call 0x4d61a7
mov edx, dword [ebp - 0x40]
add esp, 0xc
cmp dword [edx + 8], 0
je 0x450f63
cmp dword [ebx + 8], 0
je 0x450f63
mov dword [ebp - 0x1c], 4
mov dword [esi + 4], 0
jmp 0x450f6a
mov dword [esi], 0x4a5c64
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov dword [esi + 8], eax
cmp dword [ebp - 0x30], 0
je 0x450f9a
mov edi, dword [ebp - 0x30]
mov eax, esi
call str.WSOCK32.dll
mov al, byte [edi + 0x17]
test al, al
jne 0x450f8d
mov ecx, dword [edi + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 2
je 0x450f9a
mov dword [esi], edi
mov dword [esi + 8], 3
cmp dword [esi + 0xc], 0
je 0x451079
mov eax, dword [esi + 8]
cmp eax, 5
ja case.0x450fb0.1
jmp dword [eax*4 + 0x451620]
mov edi, dword [esi]
cmp byte [edi + 0x17], 0
jne 0x450fc2
mov edi, dword [edi + 0xc]
movzx eax, byte [edi + 0x15]
and eax, 0x70
cmp eax, 0x10
je 0x451011
cmp eax, 0x20
je 0x451004
cmp eax, 0x40
je case.0x450fb0.0
push 0
push 1
push 0
push 1
push 1
mov ecx, edi
call 0x451625
call 0x4b71aa
add esp, 0x10
test eax, eax
jne case.0x450fb0.1
mov cl, byte [edi + 0x15]
test cl, cl
js case.0x450fb0.1
or cl, 0x40
mov byte [edi + 0x15], cl
jmp case.0x450fb0.1
mov eax, 2
jmp case.0x450fb0.1
cmp dword [esi + 4], 0
je 0x451018
mov eax, 1
jmp case.0x450fb0.1
push 0
push 1
push 0
push 1
xor ecx, ecx
mov eax, esi
call 0x499215
call 0x4b71ea
add esp, 0x10
jmp case.0x450fb0.1
xor eax, eax
mov ecx, eax
mov eax, esi
call 0x498f7a
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 8], 0x1d
je 0x4510b8
xor edx, edx
cmp dword [ecx + 8], 0x1e
sete dl
cmp eax, edx
jne 0x4510c2
mov dword [ebp - 0x24], ecx
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x451064
cmp dword [ecx + 8], 0x1d
jne 0x451047
cdq
mov dword [esi + 8], 1
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], ecx
jmp 0x450f9a
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x18]
cmp edi, ebx
jle 0x45109f
mov eax, dword [ebp + edi*4 - 0xdb0]
dec edi
cmp dword [eax + 8], 5
jne 0x45109b
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp edi, ebx
jg 0x451083
mov edi, dword [ebp - 0x24]
inc ebx
mov dword [ebp + ebx*4 - 0xdb0], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x6c], ebx
add edi, 0x10
jmp 0x44f703
test eax, eax
jne 0x4510c2
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x18]
add edi, 0x10
jmp 0x144f703
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
push edx
jmp 0x451303
mov eax, dword [ebp + 0x10]
cmp dword [eax], 1
je 0x4510ea
mov dword [ebp - 0x44], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x64]
test eax, eax
je case.default.0x45121b
lea ecx, [ebp - 0x5c]
push ecx
lea edx, [ebp - 0x60]
push edx
push eax
call 0x4ba5c6
add esp, 0xc
jmp case.default.0x45121b
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 0xffffffff
call 0x4a20ed
jmp case.default.0x45121b
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
push ecx
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.__The_current_thread_will_exit.
call fcn.0047bbd7
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 0xffffffff
call 0x4a2116
jmp 0x451312
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
push eax
jmp 0x45112c
mov ecx, dword [ebp + 8]
mov cl, byte [ecx]
cmp cl, 3
je case.default.0x45121b
cmp ebx, 1
jne 0x44f8d2
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0xdac]
mov ebx, eax
test edi, edi
je 0x451187
call 0x4b981e
jmp case.default.0x45121b
cmp cl, 0x12
je 0x4513f8
cmp cl, 0x6a
je 0x4513f8
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x451207
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x4511f0
cmp ecx, 2
je 0x4511f0
cmp ecx, 5
je 0x4511f0
cmp ecx, 3
jne 0x451207
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x4511c2
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x451207
mov dword [edx + 8], 5
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x4511da
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [edx], eax
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x4a5c64
jmp 0x451463
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, 0x4a5c64
jmp 0x451463
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 8]
mov edi, dword [esi]
mov dword [ebp - 0x44], edi
cmp ecx, 5
ja case.default.0x45121b
jmp dword [ecx*4 + 0x451638]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.0045167a
add esp, 8
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x451234
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
add dword [esi], eax
jmp case.default.0x45121b
mov ecx, dword [0x4bd4c4]
fld qword [eax]
sub esp, 8
add ecx, 0x74
fstp qword [esp]
push ecx
mov esi, 0x100
call 0x4b75a6
lea edx, [eax + eax + 2]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add dword [eax], edx
jmp case.default.0x45121b
cmp ecx, 3
jne 0x451297
mov ecx, dword [eax]
push 1
call fcn.004518c5
mov esi, eax
mov eax, dword [ebx]
mov dword [ebp + 0x14], esi
call fcn.00462f61
jmp 0x4512b2
mov eax, dword [eax]
mov dword [ebp + 0x14], eax
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4512a0
mov esi, dword [ebp + 0x14]
sub eax, edx
sar eax, 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea ebx, [eax + 1]
mov eax, dword [ebp + 0xc]
add eax, eax
movzx eax, word [edx + eax*8 + 2]
mov ecx, 0xff
cmp ax, cx
jae 0x4512d1
mov eax, ecx
mov edx, dword [ebp + 0x28]
lea eax, [eax + edx + 1]
cmp ebx, eax
jbe 0x4513da
mov ecx, dword [ebp + 0x20]
mov esi, dword [ecx]
sub esi, eax
add esi, ebx
lea edx, [esi + esi]
push edx
mov dword [ebp + 0x28], esi
call 0x4d2555
mov edi, eax
add esp, 4
test edi, edi
jne 0x451327
push 0x4a5c64
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.__The_current_thread_will_exit.
call fcn.0047bdae
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x44], 0
mov dword [eax], 0
jmp case.default.0x45121b
cmp esi, 0x400000
jbe 0x451335
inc dword [0x4c2f40]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ecx]
mov esi, dword [edx]
sub esi, eax
sar esi, 1
je 0x451353
lea ecx, [esi + esi]
push ecx
push eax
push edi
call 0x4d65bc
add esp, 0xc
mov edx, dword [ebp + 0x18]
lea eax, [edi + esi*2]
lea ecx, [ebx + ebx]
mov dword [edx], eax
mov edx, dword [ebp + 0x14]
push ecx
push edx
push eax
mov dword [ebp - 0x44], eax
call 0x4d65d8
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
add esp, 0xc
push ecx
call 0x4d3b3b
mov edx, dword [ebp + 0x20]
mov eax, dword [edx]
add esp, 4
cmp eax, 0x400000
jbe 0x45138f
dec dword [0x4c2f40]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
xor ecx, ecx
lea eax, [edx + eax*2]
mov dword [ebp + 8], eax
cmp dword [ebp + 0xc], ecx
jle 0x4513c3
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + ecx*4]
cmp eax, edx
jb 0x4513bd
cmp eax, dword [ebp + 8]
jae 0x4513bd
mov esi, dword [ebp + 0x24]
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, dword [ebp + 0xc]
jl 0x4513a1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x20]
mov dword [ecx], edi
mov edi, dword [ebp + 0x18]
mov dword [eax], edx
lea edx, [ebx + ebx]
add dword [edi], edx
jmp case.default.0x45121b
mov edi, dword [ebp + 0x18]
mov eax, dword [edi]
cmp eax, esi
je 0x4513f1
lea ecx, [ebx + ebx]
push ecx
push esi
push eax
call 0x4d2fda
add esp, 0xc
lea edx, [ebx + ebx]
add dword [edi], edx
jmp case.default.0x45121b
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.default.0x451404
jmp dword [ecx*4 + 0x451650]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x451404.5
mov dword [ebp - 0x44], 0x4a5c64
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x451439
mov eax, dword [ebp + esi*4 - 0x5b0]
dec esi
push eax
call 0x4d3bf3
add esp, 4
test esi, esi
jne 0x451424
mov esi, dword [ebp - 0x6c]
test esi, esi
je 0x451460
mov edi, 5
mov eax, dword [ebp + esi*4 - 0xdb0]
dec esi
cmp dword [eax + 8], edi
jne 0x45145c
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
jne 0x451445
mov eax, dword [ebp - 0x44]
lea esp, [ebp - 0xfbc]
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.0x451404.5
jmp case.0x45121b.5
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x451404.0
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jmp 0x451410
mov eax, dword [eax]
call 0x49931f
jmp 0x4514b1
mov esi, dword [eax]
call sym.imp.SHELL32.dll_DragFinish
jmp 0x4514b1
mov eax, dword [ebp + 8]
test eax, eax
je case.0x45121b.5
mov dword [ebp - 0x44], 0x49eb0c
jmp case.default.0x45121b