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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x518fc3
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 0x518d78
mov edx, dword [edx + ecx*4 - 4]
nop
cmp edx, 0x10000
jb 0x518d48
shr edx, 0x10
mov ecx, 0x10
jmp 0x518d4a
xor ecx, ecx
cmp edx, 0x100
jb 0x518d58
shr edx, 8
add ecx, 8
cmp edx, 0x100
jae 0x518fb6
shl ebx, 5
lea ebp, [0x67764e]
movzx edx, byte [ebp + edx]
add ecx, edx
add ecx, ebx
jmp 0x518d7a
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 0x518dc6
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
test ecx, ecx
jne 0x518f71
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 0x518f3e
mov ebx, dword [esp + 0x28]
test ebx, ebx
jbe 0x518fad
mov ebp, dword [esp + 0x40]
movzx esi, byte [ebp]
mov edi, dword [0x8223fc]
mov eax, edx
mov edx, dword [0x8223f8]
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 0x518fa4
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 0x518f98
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.004cad60
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.004c1fe0
mov eax, dword [esp + 8]
test eax, eax
jl 0x518f0d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
jmp 0x518dba
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 0x518dba
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.00518cf0