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

Disassembly:
sub esp, 0x80
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov eax, dword [ecx]
push ebx
push ebp
push esi
xor esi, esi
push edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
cmp word [esp + 0xa4], si
je 0x486524
test byte [eax + 0x40], 0x80
je 0x486524
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov edx, dword [esp + 0x98]
movzx eax, word [edx]
mov dword [esp + 0x64], eax
cmp ax, 0x3f
ja 0x486517
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x16], 1
mov dword [esp + 0x38], ecx
call fcn.004e80c0
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x5c]
ja 0x486b5b
jb 0x486590
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x58]
jae 0x486b5b
movzx eax, word [esp + 0xa4]
mov edx, dword [esp + 0x3c]
cmp edx, eax
jg 0x486b5b
test edx, edx
jle 0x4865ba
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
or dword [esp + 0x48], esi
or dword [esp + 0x4c], ecx
cmp edx, eax
jge 0x4865cd
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x18]
mov esi, dword [ecx + edx*4]
jmp 0x4865d4
mov esi, dword [esp + 0xa8]
test dword [esi + 0x24], 0x400
mov dword [esp + 0x34], esi
jne 0x486b55
movzx eax, byte [esi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 4]
shl edx, 4
mov edx, dword [edx + ecx + 0x38]
xor ecx, ecx
cmp dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x1c], ecx
jle 0x486732
mov dword [esp + 0x18], ecx
jmp 0x486620
mov eax, 1
xor edx, edx
call fcn.004e80c0
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x20]
mov ecx, ebp
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x486716
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ecx]
call fcn.00453440
mov edi, eax
cmp byte [edi], 0x98
jne 0x486716
mov eax, dword [esp + 0x40]
cmp dword [edi + 0x1c], eax
jne 0x486716
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push 0
not edx
push 0x182
push edx
mov edx, dword [esp + 0xa0]
not ecx
push ecx
movsx ecx, word [edi + 0x20]
push eax
add edx, 0x148
call fcn.00483090
mov esi, eax
add esp, 0x14
test esi, esi
je 0x486716
test byte [esi + 0x12], 0x82
je 0x48670e
cmp word [edi + 0x20], 0
jl 0x48670e
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + edx]
call fcn.00453470
add esp, 4
test eax, eax
jne 0x4866e0
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x94]
mov edi, dword [eax]
mov eax, dword [edx]
mov ecx, dword [esi]
push eax
call fcn.00453470
add esp, 4
test eax, eax
jne 0x486701
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov ecx, edi
call fcn.004268b0
test eax, eax
jne 0x486716
or dword [esp + 0x20], ebx
or dword [esp + 0x24], ebp
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], 0x18
inc ecx
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
jl 0x486620
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0x24]
test eax, 0x1000
jne 0x486a23
xor edx, edx
test eax, 0x100
je 0x486758
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], edx
lea eax, [edx + 1]
jmp 0x486786
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x1c], edi
cmp edi, edx
je 0x486517
test byte [edi + 0x38], 4
jne 0x486517
movzx eax, word [edi + 0x32]
cmp byte [edi + 0x36], 0
mov dword [esp + 0x60], eax
movzx eax, word [edi + 0x34]
setne byte [esp + 0x16]
movzx eax, ax
cmp eax, edx
mov byte [esp + 0x2d], 0
mov byte [esp + 0x2f], 0
mov byte [esp + 0x2e], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x68], eax
jle 0x486a23
mov dword [esp + 0x30], edx
lea esp, [esp]
movzx ecx, word [esi + 0x18]
cmp edx, ecx
jge 0x4867e5
cmp word [esi + 0x2a], 0
jne 0x4867e5
mov eax, dword [esi + 0x30]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x4867e5
test eax, 0x100
je 0x486a02
mov byte [esp + 0x16], 0
jmp 0x486a02
mov eax, dword [esp + 0x1c]
test edi, edi
mov edi, dword [esp + 0x18]
je 0x48680f
mov edx, dword [eax + 4]
movsx esi, word [edx + edi*2]
mov edx, dword [eax + 0x1c]
mov dl, byte [edi + edx]
mov byte [esp + 0x17], dl
mov edx, dword [eax + 0xc]
movsx edx, word [edx + 0x20]
cmp esi, edx
jne 0x486817
jmp 0x486814
mov byte [esp + 0x17], 0
or esi, 0xffffffff
cmp byte [esp + 0x16], 0
je 0x48683d
test esi, esi
jl 0x48683d
cmp edi, ecx
jl 0x48683d
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov ecx, esi
shl ecx, 4
cmp byte [edx + ecx + 0xc], 0
jne 0x48683d
mov byte [esp + 0x16], 0
xor edi, edi
mov bl, 1
xor ebp, ebp
cmp edi, dword [esp + 0x38]
jge 0x486947
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.004e80c0
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0x48693b
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + ebp]
test eax, eax
je 0x4868a4
lea esp, [esp]
mov ecx, dword [eax + 4]
test ecx, 0x1000
je 0x4868a4
test ecx, 0x40000
je 0x48689d
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x4868a0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x486880
test dword [esp + 0xa0], 0x300
jne 0x4868b3
xor bl, bl
cmp esi, 0xffffffff
jl 0x4868ce
cmp byte [eax], 0x98
jne 0x48693b
mov ecx, dword [esp + 0x40]
cmp dword [eax + 0x1c], ecx
jne 0x48693b
movsx edx, word [eax + 0x20]
cmp edx, esi
jmp 0x4868f0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, dword [edx + 0x28]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x34]
mov edx, dword [edx + ecx]
push edx
push eax
call fcn.00457f00
add esp, 0xc
test eax, eax
jne 0x48693b
test esi, esi
jl 0x486972
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
mov ecx, dword [ecx + ebp]
push eax
call fcn.00453470
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x486922
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx]
call fcn.004268b0
test eax, eax
je 0x486972
inc edi
add ebp, 0x18
test bl, bl
jne 0x486843
mov eax, dword [esp + 0x18]
test eax, eax
je 0x486958
movzx ecx, word [esp + 0x60]
cmp eax, ecx
jge 0x48695d
mov byte [esp + 0x16], 0
cmp byte [esp + 0x2e], 0
je 0x486a23
mov byte [esp + 0x16], 1
jmp 0x486a2e
test dword [esp + 0xa0], 0x100
jne 0x4869df
cmp byte [esp + 0x2d], 0
je 0x4869a3
mov al, byte [esp + 0x17]
mov edx, dword [esp + 0x98]
xor al, byte [esp + 0x2f]
mov edx, dword [edx + 4]
lea ecx, [edi + edi*2]
cmp al, byte [edx + ecx*8 + 0xc]
jne 0x486947
jmp 0x4869df
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
lea eax, [edi + edi*2]
mov al, byte [edx + eax*8 + 0xc]
xor al, byte [esp + 0x17]
mov byte [esp + 0x2f], al
je 0x4869da
mov ecx, dword [esp + 0x3c]
mov eax, 1
xor edx, edx
call fcn.004e80c0
mov ecx, dword [esp + 0xac]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x2d], 1
test esi, esi
jge 0x4869e8
mov byte [esp + 0x2e], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.004e80c0
or dword [esp + 0x20], eax
or dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
add dword [esp + 0x30], 0x18
inc edx
cmp edx, dword [esp + 0x68]
mov dword [esp + 0x18], edx
jge 0x48695d
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
jmp 0x4867b0
cmp byte [esp + 0x16], 0
je 0x486b44
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or dword [esp + 0x50], edx
or dword [esp + 0x54], eax
xor ecx, ecx
cmp dword [esp + 0x38], ecx
mov dword [esp + 0x1c], ecx
jle 0x486b44
mov dword [esp + 0x30], ecx
mov eax, 1
xor edx, edx
call fcn.004e80c0
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x20]
mov dword [esp + 0x8c], ecx
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x486b2c
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
mov esi, dword [eax + edx]
mov ecx, dword [esp + 0x94]
add ecx, 0x44
push esi
push ecx
call fcn.004828e0
mov edi, eax
mov ebp, edx
mov edx, edi
add esp, 8
or edx, ebp
jne 0x486b09
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov byte [esp + 0x80], 1
mov dword [esp + 0x70], 0x454ce0
mov dword [esp + 0x74], 0x454de0
mov dword [esp + 0x84], eax
cmp esi, eax
je 0x486b09
lea eax, [esp + 0x6c]
push esi
push eax
call fcn.00451550
add esp, 8
cmp byte [esp + 0x80], 0
je 0x486b2c
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x486b2c
mov ecx, dword [esp + 0x8c]
or dword [esp + 0x20], ebx
or dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x30], 0x18
inc ecx
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
jl 0x486a54
inc dword [esp + 0x3c]
cmp byte [esp + 0x16], 0
jne 0x486572
jmp 0x486b5b
cmp byte [esi + 0x1d], 0
jne 0x486b6f
mov edx, dword [esp + 0x58]
cmp dword [esp + 0x20], edx
jne 0x486b7e
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x24], eax
jne 0x486b7e
mov al, byte [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp byte [esp + 0x16], 0
jne 0x486bdd
mov ebx, dword [esp + 0x38]
dec ebx
test ebx, ebx
jle 0x486517
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.004e80c0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x486bbe
cmp esi, edx
je 0x486bd0
dec ebx
test ebx, ebx
jg 0x486b9a
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x80
ret