Function at 0x46afd1
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 0x46afff
mov dword [ebp - 8], 1
cmp eax, dword [esi + 4]
je 0x46b002
mov dword [ebp - 8], ecx
test dword [edi + 0x2c], 0x102
je 0x46b489
test byte [ebp + 0xc], 5
mov ebx, dword [esi + 4]
mov dword [esi], ebx
je 0x46b0a0
xor edx, edx
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x46b0f8
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x46b0f8
movzx ecx, word [ebx + eax*4 + 0xa]
mov edi, 0xffff
cmp cx, di
je 0x46b0f8
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 0x46b08d
mov edx, dword [edi + 4]
mov dword [esi + 0x7c], edx
test byte [ecx + 0x2c], 2
jne 0x46b078
movzx eax, word [ebx + eax*4 + 8]
call fcn.0046a1df
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
xor edx, edx
jmp 0x46b100
mov dword [esi + 8], edx
mov dword [esi + 0xec], edx
mov dword [esi + 0x100], 1
xor edx, edx
cmp dword [ebp - 8], edx
jne 0x46b0ad
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x46b673
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x46b673
movzx eax, word [ebx + eax*4 + 0xa]
mov ecx, 0xffff
cmp ax, cx
je 0x46b673
mov edi, dword [ebp + 8]
imul eax, eax, 0x4c
add eax, dword [edi + 0x38]
jne 0x46b28c
mov dword [esi + 0x54], pe_nt_image_headers32
mov dword [esi + 0x5c], edx
mov dword [esi + 0x80], edx
jmp 0x46b467
xor edi, edi
mov dword [esi + 8], edx
mov dword [ebp - 4], edi
cmp edi, edx
je 0x46b090
mov ecx, dword [esi + 0x120]
cmp ecx, dword [edi + 0x14]
jl 0x46b121
mov ecx, dword [ebp + 8]
test dword [ecx + 0x2c], 0x800
je 0x46b170
mov dword [esi + 0x120], edx
or byte [esi + 0x11d], 1
cmp byte [edi + 0x3e], 0
je 0x46b18f
cmp byte [edi + 0x3f], 0
je 0x46b18f
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 0x46b195
test byte [edi + 0x20], 0x10
je 0x46b17f
or dword [esi + 0x120], 0xffffffff
jmp 0x46b121
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 0x46b0a0
mov eax, dword [ebp + 8]
test dword [eax + 0x2c], 0x200
je 0x46b0a0
mov eax, dword [ebx + 0x358]
test al, al
jns 0x46b1ce
and eax, 0x7f
mov dword [esi + 0x184], eax
mov eax, dword [ebx + 0x35c]
test al, al
jns 0x46b1e1
and eax, 0x7f
mov dword [esi + 0x188], eax
cmp dword [ebx + 0x348], 0
je 0x46b0a0
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 0x46b27c
mov eax, dword [edi + 0x12c]
cmp eax, dword [esi + 0x12c]
jne 0x46b27c
cmp dword [edi], ebx
jne 0x46b27c
mov eax, dword [ebx + 0x348]
dec eax
je 0x46b23d
dec eax
je 0x46b235
dec eax
je 0x46b245
jmp 0x46b27c
mov eax, dword [edi + 8]
cmp eax, dword [ebp - 4]
jmp 0x46b243
mov eax, dword [edi + 0x68]
cmp eax, dword [esi + 0x68]
jne 0x46b27c
mov eax, dword [ebx + 0x34c]
sub eax, 0
je 0x46b272
dec eax
je 0x46b266
dec eax
jne 0x46b27c
mov eax, dword [edi + 0xc]
cmp eax, 0x7fff
jne 0x46b27c
dec eax
mov dword [edi + 0xc], eax
jmp 0x46b27c
mov edx, dword [ebp + 8]
mov eax, edi
call fcn.0046a0e3
jmp 0x46b27c
mov dword [edi + 0x100], 1
add edi, 0x20c
dec dword [ebp - 0xc]
jne 0x46b209
jmp 0x46b0a0
mov ecx, dword [ebp + 0xc]
and ecx, 0x20
mov dword [ebp - 4], ecx
jne 0x46b2b1
mov ecx, dword [eax + 0x10]
cmp ecx, edx
jge 0x46b2ae
mov ecx, dword [ebx + 0x338]
cmp ecx, edx
jge 0x46b2ae
mov ecx, dword [esi + 0x178]
mov dword [esi + 0x54], ecx
test byte [ebp + 0xc], 0x40
jne 0x46b2cc
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 0x46b45e
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc], ecx
cmp dword [ebx + 0x350], edx
je 0x46b314
mov ecx, dword [ebx + 0x350]
call fcn.00455543
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 0x46b314
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 0x46b45e
mov eax, dword [ebx + 0x340]
xor ecx, ecx
cmp eax, ecx
je 0x46b352
mov edx, dword [esi + 0x68]
sub edx, dword [ebx + 0x344]
imul edx, eax
sar edx, 1
mov dword [esi + 0x164], edx
jmp 0x46b358
mov dword [esi + 0x164], ecx
cmp dword [ebx + 0x354], ecx
je 0x46b3c5
cmp dword [esi + 0x54], ecx
jl 0x46b3c5
mov ecx, dword [ebx + 0x354]
call fcn.00455543
xor edx, edx
lea edi, [ecx + ecx]
div edi
mov eax, dword [ebp + 8]
sub edx, ecx
test dword [eax + 0x2c], 0x10000
je 0x46b3ab
mov eax, dword [eax + 0x30]
mov ecx, eax
and ecx, 0xfffff000
cmp ecx, 0x5000
jne 0x46b39f
and eax, 0xfff
jmp 0x46b3a1
xor eax, eax
cmp eax, 0x126
jae 0x46b3ab
sar edx, 2
add dword [esi + 0x54], edx
mov ecx, dword [esi + 0x54]
jns 0x46b3b9
and dword [esi + 0x54], 0
jmp 0x46b3c5
mov eax, 0xff
cmp ecx, eax
jle 0x46b3c5
mov dword [esi + 0x54], eax
cmp dword [ebp - 8], 0
je 0x46b3dd
mov al, byte [ebx + 0x1e8]
and al, 0x21
cmp al, 0x21
jne 0x46b3dd
and byte [esi + 0x14], 0xf7
jmp 0x46b3f1
push 0xffffffffffffffc0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x1e8]
lea ecx, [esi + 0x14]
call fcn.0046a9d7
cmp dword [ebp - 8], 0
je 0x46b409
mov al, byte [ebx + 0x252]
and al, 0x21
cmp al, 0x21
jne 0x46b409
and byte [esi + 0x30], 0xf7
jmp 0x46b41d
push 0xffffffffffffffe0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x252]
lea ecx, [esi + 0x30]
call fcn.0046a9d7
cmp dword [ebp - 8], 0
je 0x46b438
mov al, byte [ebx + 0x2c8]
and al, 0x21
cmp al, 0x21
jne 0x46b438
and byte [esi + 0x148], 0xf7
jmp 0x46b45e
lea edi, [ebx + 0x2c8]
test byte [edi], 0x10
lea ecx, [esi + 0x148]
je 0x46b450
push 0xfffff800
jmp 0x46b455
push 0xfffffc00
push esi
push dword [ebp + 8]
call fcn.0046a9d7
mov eax, dword [ebx + 0x2bc]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0xc]
and eax, 0x20
jne 0x46b476
mov dword [esi + 0xc], 0x7fff
test eax, eax
jne 0x46b481
mov dword [esi + 0x4c], 1
mov edx, dword [ebp + 8]
jmp 0x46b720
test byte [ebp + 0xc], 5
je 0x46b57c
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 0x46b4ae
test byte [edi + 0x2c], 8
jne 0x46b5c4
test eax, eax
je 0x46b5bf
mov ecx, dword [esi + 0x68]
movzx eax, word [eax + ecx*4 + 0xa]
mov ebx, 0xffff
cmp ax, bx
je 0x46b5bf
mov ebx, eax
imul ebx, ebx, 0x4c
add ebx, dword [edi + 0x38]
cmp dword [ebx + 0x34], 0
je 0x46b555
mov eax, dword [edi + 0x2c]
test al, 8
jne 0x46b52c
mov edi, dword [ebx + 8]
add edi, ecx
cmp edi, 0x77
mov edi, dword [ebp + 8]
jl 0x46b52c
test eax, 0x10000
je 0x46b515
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 0x46b540
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x68], eax
mov ebx, edx
mov dword [ebp - 0xc], 1
jmp 0x46b5c4
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.0046a1df
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
jmp 0x46b5c4
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 0x46b727
mov ecx, dword [edi + 0x2c]
mov edx, 0x88
and ecx, edx
cmp ecx, edx
jne 0x46b6b7
mov eax, dword [esi + 4]
test eax, eax
je 0x46b6b7
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 0x46b6e9
xor ebx, ebx
mov dword [esi + 8], ebx
test ebx, ebx
je 0x46b56b
and dword [esi + 0xe4], 0
cmp dword [ebp - 0xc], 0
jne 0x46b650
mov ecx, dword [edi + 0x2c]
test cl, cl
jns 0x46b5e8
cmp dword [edi + 0x1c], 0xf
jne 0x46b5e8
test byte [ebx + 0x20], 0x10
jne 0x46b640
mov eax, dword [esi + 0x120]
cmp eax, dword [ebx + 0x14]
jl 0x46b649
test ecx, 0x10000
je 0x46b61e
mov eax, dword [edi + 0x30]
mov edx, eax
and edx, 0xfffff000
cmp edx, 0x5000
jne 0x46b615
and eax, 0xfff
jmp 0x46b617
xor eax, eax
cmp eax, 0x118
jb 0x46b62c
mov eax, ecx
mov ecx, 0x88
and eax, ecx
cmp eax, 8
jne 0x46b636
test byte [ebx + 0x20], 0x10
jne 0x46b640
xor eax, eax
jmp 0x46b643
cmp eax, ecx
jne 0x46b668
test byte [ebx + 0x20], 0x10
je 0x46b668
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x120], eax
or byte [esi + 0x11d], 1
test byte [ebp + 0xc], 4
je 0x46b682
push dword [ebp - 4]
mov edi, esi
call fcn.0046aefb
mov edi, dword [ebp + 8]
jmp 0x46b57c
and dword [esi + 8], 0
and dword [esi + 0xec], 0
mov dword [esi + 0x100], 1
jmp 0x46b727
mov eax, dword [ebp - 4]
test eax, eax
je 0x46b57c
test byte [eax + 0x1e8], 1
jne 0x46b57c
cmp dword [esi + 0xc], 0
jne 0x46b57c
mov dword [esi + 0xc], 0x7ef4
mov dword [esi + 0x10], pe_nt_image_headers32
jmp 0x46b57c
test ebx, ebx
jne 0x46b6d3
cmp ecx, edx
je 0x46b6c6
mov dword [esi + 0x54], pe_nt_image_headers32
and dword [esi + 0x5c], 0
and dword [esi + 0x80], 0
jmp 0x46b6e9
mov eax, dword [ebx + 0x10]
test eax, eax
js 0x46b6dd
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 0x46b71e
push dword [ebp - 4]
mov edi, esi
call fcn.0046aefb
cmp dword [ebp - 4], 0
je 0x46b706
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.0046a0a5
pop edi
pop esi
pop ebx
leave
ret 8