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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, eax
mov eax, dword [esi]
mov edx, dword [esi + 8]
xor ecx, ecx
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], eax
mov ebx, edx
cmp dword [esi + 0x1bc], ecx
je 0x416b93
mov dword [ebp - 8], 1
cmp eax, dword [esi + 4]
je 0x416b96
mov dword [ebp - 8], ecx
test dword [edi + 0x2c], 0x102
je 0x41701d
test byte [ebp + 0xc], 5
mov ebx, dword [esi + 4]
mov dword [esi], ebx
je 0x416c34
xor edx, edx
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x416c8c
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x416c8c
movzx ecx, word [ebx + eax*4 + 0xa]
mov edi, 0xffff
cmp cx, di
je 0x416c8c
mov edx, ecx
mov ecx, dword [ebp + 8]
imul edx, edx, 0x4c
mov edi, dword [ecx + 0x38]
add edi, edx
xor edx, edx
mov dword [esi + 8], edi
mov dword [ebp - 4], edi
cmp dword [edi + 0x34], edx
je 0x416c21
mov edx, dword [edi + 4]
mov dword [esi + 0x7c], edx
test byte [ecx + 0x2c], 2
jne 0x416c0c
movzx eax, word [ebx + eax*4 + 8]
call fcn.00415d73
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
xor edx, edx
jmp 0x416c94
mov dword [esi + 8], edx
mov dword [esi + 0xec], edx
mov dword [esi + 0x100], 1
xor edx, edx
cmp dword [ebp - 8], edx
jne 0x416c41
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x417207
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x417207
movzx eax, word [ebx + eax*4 + 0xa]
mov ecx, 0xffff
cmp ax, cx
je 0x417207
mov edi, dword [ebp + 8]
imul eax, eax, 0x4c
add eax, dword [edi + 0x38]
jne 0x416e20
mov dword [esi + 0x54], 0x80
mov dword [esi + 0x5c], edx
mov dword [esi + 0x80], edx
jmp 0x416ffb
xor edi, edi
mov dword [esi + 8], edx
mov dword [ebp - 4], edi
cmp edi, edx
je 0x416c24
mov ecx, dword [esi + 0x120]
cmp ecx, dword [edi + 0x14]
jl 0x416cb5
mov ecx, dword [ebp + 8]
test dword [ecx + 0x2c], 0x800
je 0x416d04
mov dword [esi + 0x120], edx
or byte [esi + 0x11d], 1
cmp byte [edi + 0x3e], 0
je 0x416d23
cmp byte [edi + 0x3f], 0
je 0x416d23
mov dword [esi + 0xec], 1
mov al, byte [edi + 0x3c]
mov byte [esi + 0xf0], al
mov al, byte [edi + 0x3e]
mov byte [esi + 0xf2], al
mov al, byte [edi + 0x3f]
mov byte [esi + 0xf1], al
mov byte [esi + 0xf3], al
mov al, byte [edi + 0x3d]
mov byte [esi + 0xf4], al
mov dword [esi + 0xf8], edx
jmp 0x416d29
test byte [edi + 0x20], 0x10
je 0x416d13
or dword [esi + 0x120], 0xffffffff
jmp 0x416cb5
mov dword [esi + 8], edx
mov dword [ebp - 4], edx
mov dword [esi + 0x100], 1
mov dword [esi + 0xec], edx
test byte [ebp + 0xc], 0x10
mov eax, dword [ebx + 0x33c]
mov dword [esi + 0x140], eax
jne 0x416c34
mov eax, dword [ebp + 8]
test dword [eax + 0x2c], 0x200
je 0x416c34
mov eax, dword [ebx + 0x358]
test al, al
jns 0x416d62
and eax, 0x7f
mov dword [esi + 0x184], eax
mov eax, dword [ebx + 0x35c]
test al, al
jns 0x416d75
and eax, 0x7f
mov dword [esi + 0x188], eax
cmp dword [ebx + 0x348], 0
je 0x416c34
mov eax, dword [ebp + 8]
mov edi, dword [eax + 8]
imul edi, edi, 0x20c
add edi, dword [eax + 0x1ec]
mov eax, dword [eax + 0x1f0]
mov dword [ebp - 0xc], eax
cmp byte [edi + 0x1b4], 0
je 0x416e10
mov eax, dword [edi + 0x12c]
cmp eax, dword [esi + 0x12c]
jne 0x416e10
cmp dword [edi], ebx
jne 0x416e10
mov eax, dword [ebx + 0x348]
dec eax
je 0x416dd1
dec eax
je 0x416dc9
dec eax
je 0x416dd9
jmp 0x416e10
mov eax, dword [edi + 8]
cmp eax, dword [ebp - 4]
jmp 0x416dd7
mov eax, dword [edi + 0x68]
cmp eax, dword [esi + 0x68]
jne 0x416e10
mov eax, dword [ebx + 0x34c]
sub eax, 0
je 0x416e06
dec eax
je 0x416dfa
dec eax
jne 0x416e10
mov eax, dword [edi + 0xc]
cmp eax, 0x7fff
jne 0x416e10
dec eax
mov dword [edi + 0xc], eax
jmp 0x416e10
mov edx, dword [ebp + 8]
mov eax, edi
call fcn.00415c77
jmp 0x416e10
mov dword [edi + 0x100], 1
add edi, 0x20c
dec dword [ebp - 0xc]
jne 0x416d9d
jmp 0x416c34
mov ecx, dword [ebp + 0xc]
and ecx, 0x20
mov dword [ebp - 4], ecx
jne 0x416e45
mov ecx, dword [eax + 0x10]
cmp ecx, edx
jge 0x416e42
mov ecx, dword [ebx + 0x338]
cmp ecx, edx
jge 0x416e42
mov ecx, dword [esi + 0x178]
mov dword [esi + 0x54], ecx
test byte [ebp + 0xc], 0x40
jne 0x416e60
mov ecx, dword [eax + 0x40]
mov dword [esi + 0x130], ecx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x80], ecx
test dword [edi + 0x2c], 0x200
je 0x416ff2
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc], ecx
cmp dword [ebx + 0x350], edx
je 0x416ea8
mov ecx, dword [ebx + 0x350]
call fcn.004010d7
xor edx, edx
lea edi, [ecx + ecx]
div edi
push 0x64
mov eax, edx
sub eax, ecx
add eax, 0x64
imul eax, dword [ebp - 0xc]
pop ecx
xor edx, edx
div ecx
push 0x40
pop ecx
cmp eax, ecx
jae 0x416ea8
mov ecx, eax
mov eax, dword [ebx + 0x334]
imul eax, ecx
shr eax, 7
cmp dword [ebp - 4], 0
mov dword [esi + 0x130], eax
jne 0x416ff2
mov eax, dword [ebx + 0x340]
xor ecx, ecx
cmp eax, ecx
je 0x416ee6
mov edx, dword [esi + 0x68]
sub edx, dword [ebx + 0x344]
imul edx, eax
sar edx, 1
mov dword [esi + 0x164], edx
jmp 0x416eec
mov dword [esi + 0x164], ecx
cmp dword [ebx + 0x354], ecx
je 0x416f59
cmp dword [esi + 0x54], ecx
jl 0x416f59
mov ecx, dword [ebx + 0x354]
call fcn.004010d7
xor edx, edx
lea edi, [ecx + ecx]
div edi
mov eax, dword [ebp + 8]
sub edx, ecx
test dword [eax + 0x2c], 0x10000
je 0x416f3f
mov eax, dword [eax + 0x30]
mov ecx, eax
and ecx, 0xfffff000
cmp ecx, 0x5000
jne 0x416f33
and eax, 0xfff
jmp 0x416f35
xor eax, eax
cmp eax, 0x126
jae 0x416f3f
sar edx, 2
add dword [esi + 0x54], edx
mov ecx, dword [esi + 0x54]
jns 0x416f4d
and dword [esi + 0x54], 0
jmp 0x416f59
mov eax, 0xff
cmp ecx, eax
jle 0x416f59
mov dword [esi + 0x54], eax
cmp dword [ebp - 8], 0
je 0x416f71
mov al, byte [ebx + 0x1e8]
and al, 0x21
cmp al, 0x21
jne 0x416f71
and byte [esi + 0x14], 0xf7
jmp 0x416f85
push 0xffffffffffffffc0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x1e8]
lea ecx, [esi + 0x14]
call fcn.0041656b
cmp dword [ebp - 8], 0
je 0x416f9d
mov al, byte [ebx + 0x252]
and al, 0x21
cmp al, 0x21
jne 0x416f9d
and byte [esi + 0x30], 0xf7
jmp 0x416fb1
push 0xffffffffffffffe0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x252]
lea ecx, [esi + 0x30]
call fcn.0041656b
cmp dword [ebp - 8], 0
je 0x416fcc
mov al, byte [ebx + 0x2c8]
and al, 0x21
cmp al, 0x21
jne 0x416fcc
and byte [esi + 0x148], 0xf7
jmp 0x416ff2
lea edi, [ebx + 0x2c8]
test byte [edi], 0x10
lea ecx, [esi + 0x148]
je 0x416fe4
push 0xfffff800
jmp 0x416fe9
push 0xfffffc00
push esi
push dword [ebp + 8]
call fcn.0041656b
mov eax, dword [ebx + 0x2bc]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0xc]
and eax, 0x20
jne 0x41700a
mov dword [esi + 0xc], 0x7fff
test eax, eax
jne 0x417015
mov dword [esi + 0x4c], 1
mov edx, dword [ebp + 8]
jmp 0x4172b4
test byte [ebp + 0xc], 5
je 0x417110
test byte [ebp + 0xc], 8
mov eax, dword [esi + 4]
mov dword [ebp - 0xc], ecx
mov dword [esi], eax
mov dword [ebp - 4], eax
je 0x417042
test byte [edi + 0x2c], 8
jne 0x417158
test eax, eax
je 0x417153
mov ecx, dword [esi + 0x68]
movzx eax, word [eax + ecx*4 + 0xa]
mov ebx, 0xffff
cmp ax, bx
je 0x417153
mov ebx, eax
imul ebx, ebx, 0x4c
add ebx, dword [edi + 0x38]
cmp dword [ebx + 0x34], 0
je 0x4170e9
mov eax, dword [edi + 0x2c]
test al, 8
jne 0x4170c0
mov edi, dword [ebx + 8]
add edi, ecx
cmp edi, 0x77
mov edi, dword [ebp + 8]
jl 0x4170c0
test eax, 0x10000
je 0x4170a9
push 0x77
mov dword [esi + 8], ebx
pop eax
sub eax, dword [ebx + 8]
mov dword [esi + 0x68], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x64], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x68]
add eax, dword [esi + 0x64]
jmp 0x4170d4
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x68], eax
mov ebx, edx
mov dword [ebp - 0xc], 1
jmp 0x417158
mov dword [esi + 8], ebx
mov eax, dword [ebx + 8]
mov dword [esi + 0x64], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x64]
add eax, ecx
mov ecx, edi
call fcn.00415d73
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
jmp 0x417158
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
and al, 1
movzx eax, al
neg eax
sbb eax, eax
and eax, ebx
mov dword [esi + 8], eax
xor ebx, ebx
and dword [esi + 0xec], 0
mov dword [esi + 0x100], 1
test byte [ebp + 0xc], 2
je 0x4172bb
mov ecx, dword [edi + 0x2c]
mov edx, 0x88
and ecx, edx
cmp ecx, edx
jne 0x41724b
mov eax, dword [esi + 4]
test eax, eax
je 0x41724b
movzx eax, word [eax + 0xa]
mov ecx, dword [edi + 0x38]
imul eax, eax, 0x4c
mov eax, dword [eax + ecx + 0xc]
mov dword [esi + 0x5c], eax
mov dword [esi + 0x80], eax
jmp 0x41727d
xor ebx, ebx
mov dword [esi + 8], ebx
test ebx, ebx
je 0x4170ff
and dword [esi + 0xe4], 0
cmp dword [ebp - 0xc], 0
jne 0x4171e4
mov ecx, dword [edi + 0x2c]
test cl, cl
jns 0x41717c
cmp dword [edi + 0x1c], 0xf
jne 0x41717c
test byte [ebx + 0x20], 0x10
jne 0x4171d4
mov eax, dword [esi + 0x120]
cmp eax, dword [ebx + 0x14]
jl 0x4171dd
test ecx, 0x10000
je 0x4171b2
mov eax, dword [edi + 0x30]
mov edx, eax
and edx, 0xfffff000
cmp edx, 0x5000
jne 0x4171a9
and eax, 0xfff
jmp 0x4171ab
xor eax, eax
cmp eax, 0x118
jb 0x4171c0
mov eax, ecx
mov ecx, 0x88
and eax, ecx
cmp eax, 8
jne 0x4171ca
test byte [ebx + 0x20], 0x10
jne 0x4171d4
xor eax, eax
jmp 0x4171d7
cmp eax, ecx
jne 0x4171fc
test byte [ebx + 0x20], 0x10
je 0x4171fc
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x120], eax
or byte [esi + 0x11d], 1
test byte [ebp + 0xc], 4
je 0x417216
push dword [ebp - 4]
mov edi, esi
call fcn.00416a8f
mov edi, dword [ebp + 8]
jmp 0x417110
and dword [esi + 8], 0
and dword [esi + 0xec], 0
mov dword [esi + 0x100], 1
jmp 0x4172bb
mov eax, dword [ebp - 4]
test eax, eax
je 0x417110
test byte [eax + 0x1e8], 1
jne 0x417110
cmp dword [esi + 0xc], 0
jne 0x417110
mov dword [esi + 0xc], 0x7ef4
mov dword [esi + 0x10], 0x80
jmp 0x417110
test ebx, ebx
jne 0x417267
cmp ecx, edx
je 0x41725a
mov dword [esi + 0x54], 0x80
and dword [esi + 0x5c], 0
and dword [esi + 0x80], 0
jmp 0x41727d
mov eax, dword [ebx + 0x10]
test eax, eax
js 0x417271
mov dword [esi + 0x54], eax
mov ebx, dword [ebx + 0xc]
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x80], ebx
test byte [ebp + 0xc], 0x20
jne 0x4172b2
push dword [ebp - 4]
mov edi, esi
call fcn.00416a8f
cmp dword [ebp - 4], 0
je 0x41729a
or byte [esi + 0x11d], 6
and dword [esi + 0xe4], 0
mov edi, dword [ebp + 8]
mov dword [esi + 0xc], 0x7ef4
mov dword [esi + 0x78], 1
mov edx, edi
mov ecx, esi
call fcn.00415c39
pop edi
pop esi
pop ebx
leave
ret 8