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

Disassembly:
push edi
sub edi, 0xfe0f
jmp 0x5167b6
call 0x5167c5
add byte [esi], dh
inc eax
inc ebp
inc edx
dec esi
xor cl, byte [esi + 0x43]
cmp al, 0x83
les eax, [edi + ebx*2]
pop edi
push ebx
push ecx
add esp, 4
xor ebx, 0x155ed
in eax, dx
push ebp
add dword [eax], eax
and ebx, 0x7f4
pop ebx
lea eax, [ebp - 0x16e8]
mov dword [ebp - 0xc54], eax
mov ecx, dword [ebp - 0x4e8]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc50], edx
xor eax, eax
mov word [ebp - 0x208], ax
xor ecx, ecx
mov word [ebp - 0x3c], cx
push esi
push esi
add esp, 4
sub esi, 0x205e
pop esi
push ebx
call 0x51681f
add byte [edx + 0x36], cl
dec edi
push eax
aas
cmp eax, 0x4c4834c
add ebx, 0x1dbf
sub ebx, 0x114f6
jmp 0x516836
pop ebx
mov edx, dword [ebp - 0xc50]
mov ax, word [edx]
mov word [ebp - 0xf8e], ax
mov ecx, dword [ebp - 0xc50]
add ecx, 2
mov dword [ebp - 0xc50], ecx
mov dx, word [ebp - 0xf8e]
mov word [ebp - 0x208], dx
mov eax, dword [ebp - 0xc54]
mov cx, word [eax]
mov word [ebp - 0xf90], cx
mov edx, dword [ebp - 0xc54]
add edx, 2
mov dword [ebp - 0xc54], edx
mov ax, word [ebp - 0xf90]
mov word [ebp - 0x3c], ax
push ecx
jmp 0x516898
jmp 0x5168a0
pop ecx
push esi
jmp 0x5168ab
add esi, 0x773
pop esi
push edi
push esi
add esp, 4
jmp 0x5168bf
pop edi
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x5168dd
movzx edx, word [ebp - 0x208]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x1560], edx
jmp 0x516937
movzx ecx, word [ebp - 0x208]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x516805
movzx eax, word [ebp - 0x208]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je 0x516805
movzx edx, word [ebp - 0x208]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x516921
mov dword [ebp - 0x151c], 0xffffffff
jmp 0x51692b
mov dword [ebp - 0x151c], 1
mov ecx, dword [ebp - 0x151c]
mov dword [ebp - 0x1560], ecx
cmp dword [ebp - 0x1560], 0
jne 0x516980
push esi
push edx
add esp, 4
or esi, 0x727
xor esi, 0xe4b3
pop esi
push edx
call 0x516962
add byte [edx], bh
inc esp
inc edi
xor bh, byte ss:[0x834e4b37]
les eax, [ecx + eax*4]
test dword [eax + 1], ebp
add byte [ecx + 0x12a7e2], al
add byte [edx - 0x75], bl
xchg ebp, eax
sbb bl, bh
invalid
push ecx
push eax
add esp, 4
sub ecx, 0x86e5
xor ecx, 0x8a7e
pop ecx
push edi
push eax
add esp, 4
and edi, 0x408f
and edi, 0x16e1f
add edi, 0x13b83
jmp 0x5169b1
pop edi
mov eax, dword [ebp - 0x4e8]
mov ecx, dword [eax]
mov dword [ebp - 0x4e8], ecx
mov edx, dword [ebp - 0x4e8]
cmp edx, dword [ebp - 0xc58]
je 0x5169de
mov eax, dword [ebp - 0x4e8]
cmp dword [eax + 0x30], 0
jne 0x5167a9
mov dword [ebp - 0x710], 0
push edi
xor edi, 0xa54c
or edi, 0x1e10
add edi, 0x17f6f
and edi, 0x17b61
pop edi
push esi
push esi
add esp, 4
or esi, 0x12e6c
pop esi
push eax
push eax
add esp, 4
add eax, 0xf37f
pop eax
cmp dword [ebp - 0x710], 0
jne 0x516a64
push ebx
xor ebx, 0x35ce
pop ebx
push edx
push esi
push esi
add esp, 4
sub esi, 0x109ea
add esi, 0x165e6
or esi, 0x2f77
xor esi, 0x9fe7
pop esi
push eax
sub eax, 0xff9f
pop eax
push ecx
push edi
add esp, 4
and ecx, 0x90d9
pop ecx
mov ecx, dword [ebp - 0x710]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x300], edx
mov dword [ebp - 0x720], 0
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x1564], eax
cmp dword [ebp - 0x1564], 0
jne 0x516ad5
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x516dc6
mov edx, dword [ebp - 0x1564]
mov eax, dword [ebp - 0x300]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1568], eax
jne 0x516afd
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x516dc6
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1568]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1570], edx
cmp dword [ebp - 0x1570], 0
jne 0x516b2f
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], eax
jmp 0x516dc6
mov ecx, dword [ebp - 0x300]
add ecx, dword [ebp - 0x1570]
mov dword [ebp - 0x714], ecx
jne 0x516b54
mov edx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], edx
jmp 0x516dc6
mov eax, dword [ebp - 0x714]
mov ecx, dword [ebp - 0x300]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x18e0], ecx
mov edx, dword [ebp - 0x714]
mov eax, dword [ebp - 0x300]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x18e4], eax
mov ecx, dword [ebp - 0x714]
mov edx, dword [ebp - 0x300]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x18e8], edx
mov dword [ebp - 0x718], 0
jmp 0x516bae
mov ecx, dword [ebp - 0x714]
mov edx, dword [ebp - 0x718]
cmp edx, dword [ecx + 0x18]
jae 0x516dba
mov eax, dword [ebp - 0x718]
mov ecx, dword [ebp - 0x18e0]
mov edx, dword [ebp - 0x300]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x718]
mov ecx, dword [ebp - 0x18e4]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x18e8]
mov ecx, dword [ebp - 0x300]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x18ec], ecx
mov dword [ebp - 0x188], 0
jmp 0x516c1e
mov eax, dword [ebp - 0x71c]
add eax, dword [ebp - 0x188]
movsx ecx, byte [eax]
test ecx, ecx
je 0x516cd0
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
test eax, eax
je 0x516cd0
push edi
add edi, 0xd680
xor edi, 0x12886
and edi, 0xe3ce
add edi, 0x15797
pop edi
push ecx
push edi
add esp, 4
add ecx, 0xce6c
add ecx, 0x13bde
sub ecx, 0xf04c
pop ecx
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x188]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x188]
movsx ecx, byte [ebp + eax - 0x830]
cmp edx, ecx
je 0x516cc2
mov edx, dword [ebp - 0x71c]
add edx, dword [ebp - 0x188]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x188]
invalid
mov esi, 0xf7d00d94