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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5190f3
sub esp, 0x54
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
lea ebx, [ecx - 1]
test ebx, ebx
jl 0x518ea8
mov edx, dword [edx + ecx*4 - 4]
nop
cmp edx, 0x10000
jb 0x518e78
shr edx, 0x10
mov ecx, 0x10
jmp 0x518e7a
xor ecx, ecx
cmp edx, 0x100
jb 0x518e88
shr edx, 8
add ecx, 8
cmp edx, 0x100
jae 0x5190e6
shl ebx, 5
lea ebp, [0x6775c8]
movzx edx, byte [ebp + edx]
add ecx, edx
add ecx, ebx
jmp 0x518eaa
xor ecx, ecx
mov dword [esp + 0x24], ecx
lea eax, [0x634640]
mov dword [esp], eax
lea eax, [ecx + 7]
sar eax, 0x1f
shr eax, 0x1d
lea eax, [eax + ecx + 7]
sar eax, 3
mov dword [esp + 0x28], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.004483e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x518ef6
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
test ecx, ecx
jne 0x5190a1
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edx
nop
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x28]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
call fcn.00472140
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x51906e
mov ebx, dword [esp + 0x28]
test ebx, ebx
jbe 0x5190dd
mov ebp, dword [esp + 0x40]
movzx esi, byte [ebp]
mov edi, dword [0x82145c]
mov eax, edx
mov edx, dword [0x821458]
mov ebx, dword [esp + 0x24]
sar ebx, 0x1f
shr ebx, 0x1d
mov ebp, dword [esp + 0x24]
add ebx, ebp
sar ebx, 3
shl ebx, 3
sub ebp, ebx
cmp edi, ebp
jbe 0x5190d4
movzx edx, byte [edx + ebp]
and esi, edx
mov edx, dword [esp + 0x40]
xchg esi, eax
mov byte [edx], al
xchg esi, eax
mov ebx, dword [esp + 0x28]
cmp ebx, 1
jbe 0x5190c8
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
movzx eax, byte [edx + 1]
xor eax, 0x42
mov byte [edx + 1], al
mov byte [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
call fcn.004cae90
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov byte [esp + 0x44], 0
lea eax, [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.004c2110
mov eax, dword [esp + 8]
test eax, eax
jl 0x51903d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
jmp 0x518eea
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov ebx, dword [esp + 0x40]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x28]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
call ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x518eea
mov edx, dword [esp + 0x40]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x54
ret
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebp
add esp, 0x54
ret
mov eax, 1
mov ecx, ebx
call fcn.0045f420
mov eax, ebp
mov ecx, edi
call fcn.0045f420
xor eax, eax
mov ecx, ebx
call fcn.0045f420
mov eax, edx
mov ecx, 0x100
call fcn.0045f430
nop
call fcn.0045df90
jmp fcn.00518e20