Function at 0x4166e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x449658
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x868
mov eax, dword [0x45d874]
xor eax, esp
push ebx
mov dword [esp + 0x868], eax
mov eax, dword [esp + 0x87c]
push ebp
mov dword [esp + 0x28], eax
xor eax, eax
push esi
push edi
mov ebp, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x880], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov edx, dword [ebp + 0x154]
mov ecx, dword [ebp + 0x13c]
mov dword [ebp + 0xec], eax
mov eax, dword [ebp + 0x148]
add edx, eax
lea eax, [edx + eax*2]
lea ecx, [eax + ecx*2]
mov eax, dword [ebp + 0x15c]
mov dword [ebp + 0xe8], ecx
mov esi, dword [eax]
cmp esi, eax
mov byte [esp + 0x880], 1
mov dword [esp + 0x28], esi
je 0x41683b
lea ecx, [ecx]
mov edx, dword [esi + 0x68]
test edx, edx
jne 0x41679c
mov eax, dword [esi + 0x80]
test eax, eax
jne 0x41679c
mov eax, dword [esi + 0x74]
test eax, eax
je 0x416820
mov ecx, dword [esi + 0x80]
mov eax, dword [esi + 0x74]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp + 0xe8]
add eax, edx
add ecx, eax
mov dword [ebp + 0xe8], ecx
mov edi, 1
lea ecx, [ecx]
cmp dword [esi + 0x5c], 0x10
jb 0x4167cb
mov ebx, dword [esi + 0x48]
jmp 0x4167ce
lea ebx, [esi + 0x48]
push edi
mov ecx, ebp
call fcn.00409f50
push eax
push ebx
lea ecx, [esp + 0x47c]
push str._s.w_s
push ecx
call fcn.0042c4f2
add esp, 0x10
cmp eax, 0xffffffff
je 0x41681a
lea edx, [esp + 0x474]
push 0x44b6fc
push edx
call fcn.0042c809
add esp, 8
test eax, eax
je 0x41681a
push eax
call fcn.0042c609
add esp, 4
inc edi
cmp edi, 0x64
jb 0x4167c0
add dword [ebp + 0xe8], edi
lea ecx, [esp + 0x28]
call fcn.0040a800
mov eax, dword [ebp + 0x15c]
mov esi, dword [esp + 0x28]
cmp esi, eax
jne 0x416780
mov eax, dword [ebp + 0xc8]
test eax, eax
je 0x416859
mov ecx, dword [ebp + 0xe8]
mov eax, dword [ebp + 0xf4]
add ecx, eax
mov dword [ebp + 0xe8], ecx
mov eax, dword [ebp + 0x148]
mov ecx, dword [ebp + 0x154]
mov esi, dword [ebp + 0xf4]
mov edx, dword [ebp + 0x13c]
push esi
add ecx, eax
push ecx
add eax, edx
push eax
lea ecx, [esp + 0x80]
push 0x44c640
push ecx
call fcn.0042c4f2
lea eax, [esp + 0x88]
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416897
mov ecx, dword [ebp + 0x10]
sub eax, edx
test ecx, ecx
je 0x4168b8
push ecx
push eax
lea edx, [esp + 0x7c]
push 1
push edx
call fcn.0042c761
add esp, 0x10
mov eax, dword [ebp + 0x15c]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x28], ecx
je 0x416f94
lea esp, [esp]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x68]
test ecx, ecx
jne 0x4168f0
mov ecx, dword [eax + 0x80]
test ecx, ecx
jne 0x4168f0
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x416f55
mov eax, dword [ebp + 0x12c]
mov esi, dword [eax + 4]
mov al, byte [esi + 0x51]
test al, al
lea ebx, [ebp + 0x128]
mov edi, esi
jne 0x41696f
mov ecx, dword [edi + 8]
push ecx
mov ecx, ebx
call fcn.0040ea30
cmp dword [esi + 0x40], 0x10
mov edi, dword [edi]
jb 0x416927
mov eax, dword [esi + 0x2c]
push eax
call fcn.0043afc4
add esp, 4
mov dword [esi + 0x40], 0xf
mov dword [esi + 0x3c], 0
mov byte [esi + 0x2c], 0
cmp dword [esi + 0x24], 0x10
jb 0x41694b
mov eax, dword [esi + 0x10]
push eax
call fcn.0043afc4
add esp, 4
mov dword [esi + 0x24], 0xf
mov dword [esi + 0x20], 0
push esi
mov byte [esi + 0x10], 0
call fcn.0043afc4
mov al, byte [edi + 0x51]
add esp, 4
test al, al
mov esi, edi
je 0x416908
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov dword [eax + 4], eax
mov eax, dword [ebx + 4]
push edx
sub esp, 0x1c
mov ecx, esp
xor edi, edi
mov dword [ebx + 8], edi
mov dword [eax], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x54], esp
push 0xffffffffffffffff
mov dword [eax + 8], eax
add esi, 0x44
push edi
mov ebx, 0xf
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push esi
mov byte [ecx + 4], 0
mov dword [esp + 0x58], esi
call fcn.00404e10
mov ecx, ebp
call fcn.004123a0
cmp eax, edi
je 0x4170b6
cmp dword [esi + 0x18], 0x10
jb 0x4169d0
mov esi, dword [esi + 4]
jmp 0x4169d3
add esi, 4
push esi
call dword [0x44b3e4]
push eax
lea eax, [esp + 0x78]
push 0x44c62c
push eax
call fcn.0042c4f2
lea eax, [esp + 0x80]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4169f7
mov ecx, dword [ebp + 0x10]
sub eax, edx
cmp ecx, edi
je 0x416a18
push ecx
push eax
lea ecx, [esp + 0x7c]
push 1
push ecx
call fcn.0042c761
add esp, 0x10
mov edx, dword [ebp + 0x168]
mov esi, dword [edx + 4]
mov al, byte [esi + 0x65]
test al, al
lea edi, [ebp + 0x164]
mov ebx, esi
jne 0x416ac3
mov eax, dword [ebx + 8]
push eax
mov ecx, edi
call fcn.0040ea70
cmp dword [esi + 0x5c], 0x10
mov ebx, dword [ebx]
jb 0x416a53
mov eax, dword [esi + 0x48]
push eax
call fcn.0043afc4
add esp, 4
mov dword [esi + 0x5c], 0xf
mov dword [esi + 0x58], 0
mov byte [esi + 0x48], 0
cmp dword [esi + 0x40], 0x10
jb 0x416a77
mov eax, dword [esi + 0x2c]
push eax
call fcn.0043afc4
add esp, 4
mov dword [esi + 0x40], 0xf
mov dword [esi + 0x3c], 0
mov byte [esi + 0x2c], 0
cmp dword [esi + 0x24], 0x10
jb 0x416a9b
mov eax, dword [esi + 0x10]
push eax
call fcn.0043afc4
add esp, 4
mov dword [esi + 0x24], 0xf
mov dword [esi + 0x20], 0
push esi
mov byte [esi + 0x10], 0
call fcn.0043afc4
mov al, byte [ebx + 0x65]
add esp, 4
test al, al
mov esi, ebx
je 0x416a34
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
push ecx
sub esp, 0x1c
mov ecx, esp
xor esi, esi
mov dword [edi + 8], esi
mov dword [eax], eax
mov edi, dword [edi + 4]
mov dword [esp + 0x54], esp
push 0xffffffffffffffff
mov dword [edi + 8], edi
push esi
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], esi
push edx
mov byte [ecx + 4], 0
call fcn.00404e10
mov ecx, ebp
call fcn.004127e0
cmp eax, esi
je 0x41716a
mov edi, dword [esp + 0x1c]
cmp edi, esi
je 0x416b37
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
push edx
push edi
call fcn.00407e30
push edi
call fcn.0043afc4
add esp, 0x14
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x64]
mov ebx, dword [eax]
cmp ebx, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
je 0x416c50
lea edi, [ebx + 0x28]
lea esi, [ebp + 0x128]
push edi
mov ecx, esi
call fcn.0040b5a0
mov esi, dword [esi + 4]
cmp eax, esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], esi
je 0x416bda
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x14], ecx
cmp dword [eax + 0x24], 0x10
jb 0x416b86
mov eax, dword [eax + 0x10]
jmp 0x416b89
add eax, 0x10
mov edx, dword [edi + 0x14]
mov edi, edx
cmp edi, edx
jae 0x416b92
test edx, edx
je 0x416bbf
mov ecx, dword [esp + 0x14]
cmp edx, ecx
jae 0x416ba0
mov ecx, edx
cmp dword [ebx + 0x40], 0x10
jb 0x416bab
mov esi, dword [ebx + 0x2c]
jmp 0x416bae
lea esi, [ebx + 0x2c]
mov edi, eax
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x416bbb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x416bd2
cmp edx, dword [esp + 0x14]
jb 0x416bda
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp edx, ecx
setne al
test eax, eax
jl 0x416bda
lea eax, [esp + 0x50]
jmp 0x416be6
mov edx, dword [esp + 0x34]
mov dword [esp + 0x54], edx
lea eax, [esp + 0x54]
mov eax, dword [eax]
cmp eax, dword [ebp + 0x12c]
je 0x416bfd
lea eax, [ebx + 0x28]
push eax
lea ecx, [esp + 0x1c]
call fcn.004083b0
mov al, byte [ebx + 0x65]
test al, al
jne 0x416c43
mov ecx, dword [ebx + 8]
mov al, byte [ecx + 0x65]
test al, al
jne 0x416c26
mov eax, dword [ecx]
mov dl, byte [eax + 0x65]
test dl, dl
jne 0x416c22
mov ecx, eax
mov eax, dword [ecx]
mov dl, byte [eax + 0x65]
test dl, dl
je 0x416c17
mov ebx, ecx
jmp 0x416c43
mov eax, dword [ebx + 4]
mov cl, byte [eax + 0x65]
test cl, cl
jne 0x416c41
cmp ebx, dword [eax + 8]
jne 0x416c41
mov ebx, eax
mov eax, dword [eax + 4]
mov cl, byte [eax + 0x65]
test cl, cl
je 0x416c30
mov ebx, eax
mov eax, dword [esp + 0x28]
cmp ebx, dword [eax + 0x64]
jne 0x416b54
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x70]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [esp + 0x14], eax
je 0x416ca3
mov edi, dword [esp + 0x28]
lea esi, [eax + 0x28]
push esi
lea edx, [esp + 0x4c]
push edx
lea ecx, [ebp + 0x128]
call fcn.0040c310
mov eax, dword [ebp + 0x12c]
cmp dword [esp + 0x48], eax
je 0x416c8f
push esi
lea ecx, [esp + 0x1c]
call fcn.004083b0
lea ecx, [esp + 0x14]
call fcn.0040a860
mov ecx, dword [edi + 0x70]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jne 0x416c65
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x416d36
mov ecx, dword [esp + 0x20]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], eax
je 0x416d14
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push ecx
lea edx, [esp + 0x1c]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push eax
mov byte [ecx + 4], 0
call fcn.00404e10
mov ecx, ebp
call fcn.0040f2b0
test eax, eax
je 0x4171db
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x416d36
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
push esi
call fcn.00407e30
push esi
call fcn.0043afc4
add esp, 0x14
xor eax, eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
call fcn.00410f80
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x70]
mov edi, dword [eax]
cmp edi, eax
mov dword [esp + 0x14], edi
je 0x416db2
mov edi, edi
lea esi, [edi + 0x28]
push esi
lea ecx, [esp + 0x50]
push ecx
lea ecx, [ebp + 0x128]
call fcn.0040c310
mov eax, dword [ebp + 0x12c]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
je 0x416d94
mov edx, dword [ecx + 0x4c]
cmp edx, dword [edi + 0x60]
je 0x416d9e
push esi
lea ecx, [esp + 0x1c]
call fcn.004083b0
lea ecx, [esp + 0x38]
push esi
call fcn.00414360
lea ecx, [esp + 0x14]
call fcn.0040a860
mov eax, dword [ebx + 0x70]
mov edi, dword [esp + 0x14]
cmp edi, eax
jne 0x416d60
mov eax, dword [ebx + 0x7c]
mov edi, dword [eax]
cmp edi, eax
mov dword [esp + 0x14], edi
je 0x416e12
nop
lea esi, [edi + 0x28]
push esi
lea eax, [esp + 0x14]
push eax
lea ecx, [ebp + 0x128]
call fcn.0040c310
mov eax, dword [ebp + 0x12c]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
je 0x416df4
mov ecx, dword [ecx + 0x4c]
cmp ecx, dword [edi + 0x60]
je 0x416dfe
push esi
lea ecx, [esp + 0x1c]
call fcn.004083b0
lea ecx, [esp + 0x38]
push esi
call fcn.00414360
lea ecx, [esp + 0x14]
call fcn.0040a860
mov eax, dword [ebx + 0x7c]
mov edi, dword [esp + 0x14]
cmp edi, eax
jne 0x416dc0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
xor ebx, ebx
cmp edi, ebx
je 0x416e7b
mov ecx, dword [esp + 0x20]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], eax
je 0x416e7b
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x1c]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push esi
mov byte [ecx + 4], bl
call fcn.00404e10
mov ecx, ebp
call fcn.0040f2b0
cmp eax, ebx
je 0x4171db
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x416edb
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], eax
je 0x416edb
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x3c]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x58], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push esi
mov byte [ecx + 4], 0
call fcn.00404e10
mov ecx, ebp
call fcn.004154c0
cmp eax, ebx
je 0x41720b
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push esi
mov byte [ecx + 4], 0
call fcn.00404e10
mov ecx, ebp
call fcn.00410390
cmp dword [esi + 0x18], 0x10
jb 0x416f0d
mov eax, dword [esi + 4]
jmp 0x416f10
lea eax, [esi + 4]
push eax
call dword [0x44b3e4]
push eax
lea eax, [esp + 0x78]
push 0x44c614
push eax
call fcn.0042c4f2
lea eax, [esp + 0x80]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416f34
mov ecx, dword [ebp + 0x10]
sub eax, edx
cmp ecx, ebx
je 0x416f55
push ecx
push eax
lea ecx, [esp + 0x7c]
push 1
push ecx
call fcn.0042c761
add esp, 0x10
lea ecx, [esp + 0x28]
call fcn.0040a800
mov eax, dword [ebp + 0x15c]
cmp dword [esp + 0x28], eax
jne 0x4168d0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x416f94
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
push esi
call fcn.00407e30
push esi
call fcn.0043afc4
add esp, 0x14
xor edi, edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call fcn.00410f80
mov eax, dword [ebp + 0x138]
mov esi, dword [eax]
cmp esi, eax
mov dword [esp + 0x14], esi
mov ebx, 0xf
je 0x417075
lea ecx, [esi + 0x28]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004083b0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push edi
add esi, 0x28
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push esi
mov byte [ecx + 4], 0
call fcn.00404e10
mov ecx, ebp
call fcn.00414600
lea ecx, [esp + 0x14]
call fcn.0040a860
mov eax, dword [ebp + 0x138]
mov esi, dword [esp + 0x14]
cmp esi, eax
jne 0x416fc4
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x417075
mov ecx, dword [esp + 0x20]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x10], eax
je 0x417075
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.0040d160
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x417067
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
push ecx
push esi
call fcn.00407e30
push esi
call fcn.0043afc4
add esp, 0x14
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov eax, dword [ebp + 0x144]
mov esi, dword [eax]
cmp esi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], esi
je 0x417291
lea ecx, [ecx]
mov edx, dword [esi + 0x3c]
push 9
lea ecx, [esi + 0x28]
push str.llversion
push edx
push 0
call fcn.00404880
test eax, eax
jne 0x417230
mov dword [esp + 0x28], esi
jmp 0x417276
mov esi, dword [esp + 0x3c]
cmp esi, edi
je 0x41711d
mov ebp, dword [esp + 0x40]
cmp esi, ebp
je 0x417114
add esi, 0x34
lea esp, [esp]
cmp dword [esi], 0x10
jb 0x4170e1
mov edx, dword [esi - 0x14]
push edx
call fcn.0043afc4
add esp, 4
mov dword [esi], ebx
mov dword [esi - 4], edi
mov byte [esi - 0x14], 0
cmp dword [esi - 0x1c], 0x10
jb 0x4170fc
mov eax, dword [esi - 0x30]
push eax
call fcn.0043afc4
add esp, 4
mov dword [esi - 0x1c], ebx
mov dword [esi - 0x20], edi
mov byte [esi - 0x30], 0
add esi, 0x3c
lea ecx, [esi - 0x34]
cmp ecx, ebp
jne 0x4170d0
mov esi, dword [esp + 0x3c]
push esi
call fcn.0043afc4
add esp, 4
mov ebx, dword [esp + 0x1c]
cmp ebx, edi
je 0x417791
mov ebp, dword [esp + 0x20]
cmp ebx, ebp
je 0x41715c
lea esi, [ebx + 0x18]
cmp dword [esi], 0x10
jb 0x417145
mov edx, dword [esi - 0x14]
push edx
call fcn.0043afc4
add esp, 4
mov dword [esi], 0xf
mov dword [esi - 4], edi
mov byte [esi - 0x14], 0
add esi, 0x1c
lea eax, [esi - 0x18]
cmp eax, ebp
jne 0x417134
push ebx
call fcn.0043afc4
add esp, 4
jmp 0x417791
mov eax, dword [esp + 0x3c]
cmp eax, esi
je 0x4171d3
mov ebx, dword [esp + 0x40]
cmp eax, ebx
je 0x4171c8
lea esi, [eax + 0x34]
xor edi, edi
mov ebp, 0xf
cmp dword [esi], 0x10
jb 0x417195
mov ecx, dword [esi - 0x14]
push ecx
call fcn.0043afc4
add esp, 4
mov dword [esi], ebp
mov dword [esi - 4], edi
mov byte [esi - 0x14], 0
cmp dword [esi - 0x1c], 0x10
jb 0x4171b0
mov edx, dword [esi - 0x30]
push edx
call fcn.0043afc4
add esp, 4
mov dword [esi - 0x1c], ebp
mov dword [esi - 0x20], edi
mov byte [esi - 0x30], 0
add esi, 0x3c
lea eax, [esi - 0x34]
cmp eax, ebx
jne 0x417184
mov eax, dword [esp + 0x3c]
push eax
call fcn.0043afc4
add esp, 4
xor esi, esi
mov edi, dword [esp + 0x1c]
cmp edi, esi
jmp 0x417216
lea ecx, [esp + 0x38]
call fcn.00410f80
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x417791
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
push esi
call fcn.00407e30
push esi
jmp 0x417789
lea ecx, [esp + 0x38]
call fcn.00410f80
cmp edi, ebx
je 0x417791
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
jmp 0x417782
lea edi, [esi + 0x28]
push edi
lea ecx, [esp + 0x1c]
call fcn.004083b0
push edi
lea ecx, [esp + 0x3c]
call fcn.00414360
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push 0
add esi, 0x28
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], 0
push esi
mov byte [ecx + 4], 0
call fcn.00404e10
mov ecx, ebp
call fcn.00414600
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x14]
call fcn.0040a860
mov eax, dword [ebp + 0x144]
mov esi, dword [esp + 0x14]
cmp esi, eax
jne 0x417090
xor ebx, ebx
cmp edi, ebx
je 0x4172f6
mov ecx, dword [esp + 0x20]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x10], eax
je 0x4172f6
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.0040d160
mov esi, dword [esp + 0x1c]
cmp esi, ebx
je 0x4172e8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
push ecx
push esi
call fcn.00407e30
push esi
call fcn.0043afc4
add esp, 0x14
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x417420
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x10], eax
je 0x417420
call fcn.0043b0b5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
mov byte [esp + 0x888], 2
call fcn.0040d360
test eax, eax
jne 0x4173f1
push 0x7b
call fcn.0043b0aa
cmp eax, ebx
mov esi, dword [esp + 0x30]
je 0x417372
push 0x7b
push eax
mov ecx, esi
call fcn.00401ef0
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x14]
push esi
push eax
call fcn.00402650
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x884], 3
call fcn.0040c200
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x880], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4173bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x880], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4173e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x38]
call fcn.00410f80
cmp edi, ebx
jmp 0x417771
lea ecx, [esp + 0x38]
call fcn.00410f80
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x880], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417420
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp + 0x150]
mov esi, dword [eax]
cmp esi, eax
mov dword [esp + 0x14], esi
je 0x417478
mov eax, dword [esi + 0x3c]
push 9
lea ecx, [esi + 0x28]
push str.llversion
push eax
push ebx
call fcn.00404880
test eax, eax
je 0x417461
add esi, 0x28
push esi
lea ecx, [esp + 0x3c]
call fcn.00414360
push esi
lea ecx, [ebp + 0x118]
call fcn.004083b0
lea ecx, [esp + 0x14]
call fcn.0040a860
mov eax, dword [ebp + 0x150]
mov esi, dword [esp + 0x14]
cmp esi, eax
jne 0x417430
mov eax, dword [esp + 0x3c]
test eax, eax
mov ebx, 4
je 0x417574
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x10], ecx
je 0x417574
call fcn.0043b0b5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
mov byte [esp + 0x888], bl
call fcn.0040d360
test eax, eax
jne 0x417545
push 0x7b
call fcn.0043b0aa
test eax, eax
mov esi, dword [esp + 0x30]
je 0x4174f4
push 0x7b
push eax
mov ecx, esi
call fcn.00401ef0
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x14]
push esi
push eax
call fcn.00402650
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x884], 5
call fcn.0040c200
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x880], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41753c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
jmp 0x417744
lea ecx, [esp + 0x38]
call fcn.00410f80
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x880], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417574
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
cmp eax, dword [ebp + 0x144]
je 0x417720
mov eax, dword [ebp + 0xc8]
test eax, eax
je 0x417636
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4175ae
mov ecx, dword [ebp + 0xcc]
push 0
push ecx
push 0x4408
push eax
call dword [0x44b580]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
push esi
add edx, 0x28
push edx
mov ecx, ebp
call fcn.00415df0
cmp eax, 1
jne 0x4175da
push 0x14
push 0x44c5fc
mov ecx, esi
call fcn.004025c0
jmp 0x417766
cmp eax, 2
jne 0x4175f2
push 0x14
push 0x44c5fc
mov ecx, esi
call fcn.004025c0
jmp 0x417766
cmp eax, 3
jne 0x417607
push 0x20
push 0x44c5d8
mov ecx, esi
call fcn.004025c0
jmp 0x41763a
cmp eax, ebx
jne 0x41761e
push 0x22
push 0x44c5b4
mov ecx, esi
call fcn.004025c0
jmp 0x417766
cmp eax, 5
jne 0x41763a
push 0x14
push 0x44c5fc
mov ecx, esi
call fcn.004025c0
jmp 0x417766
mov esi, dword [esp + 0x30]
push 9
xor ebx, ebx
push str.llversion
lea ecx, [esp + 0x60]
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
call fcn.00404f00
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x884], 6
call fcn.004083b0
cmp dword [esp + 0x70], 0x10
mov byte [esp + 0x880], 1
jb 0x41768e
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.0043afc4
add esp, 4
lea edx, [esp + 0x18]
push edx
mov ecx, ebp
call fcn.0040d160
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x4176c0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
push edx
push edi
call fcn.00407e30
push edi
call fcn.0043afc4
add esp, 0x14
mov eax, dword [esp + 0x28]
add eax, 0x28
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
call fcn.00414360
push esi
lea ecx, [esp + 0x3c]
push ecx
mov ecx, ebp
call fcn.0040d360
lea ecx, [esp + 0x38]
call fcn.00410f80
mov ecx, ebp
call fcn.0040cd90
mov edx, dword [ebp + 0xe8]
lea ecx, [esp + 0x38]
mov dword [ebp + 0xec], edx
mov dword [ebp + 0xc0], 1
call fcn.00410f80
mov eax, 1
jmp 0x417793
push 0x44c59c
lea ecx, [esp + 0x14]
call fcn.00402150
mov ecx, dword [esp + 0x30]
push eax
mov byte [esp + 0x884], 7
call fcn.0040c200
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x880], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417766
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x38]
call fcn.00410f80
test edi, edi
je 0x417791
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
push edx
push edi
call fcn.00407e30
push edi
call fcn.0043afc4
add esp, 0x14
xor eax, eax
mov ecx, dword [esp + 0x878]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x86c]
pop ebp
pop ebx
xor ecx, esp
call fcn.0042c5af
add esp, 0x874
ret 4