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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x559dc3
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 0x559b78
mov edx, dword [edx + ecx*4 - 4]
nop
cmp edx, 0x10000
jb 0x559b48
shr edx, 0x10
mov ecx, 0x10
jmp 0x559b4a
xor ecx, ecx
cmp edx, 0x100
jb 0x559b58
shr edx, 8
add ecx, 8
cmp edx, 0x100
jae 0x559db6
shl ebx, 5
lea ebp, [0x656afc]
movzx edx, byte [ebp + edx]
add ecx, edx
add ecx, ebx
jmp 0x559b7a
xor ecx, ecx
mov dword [esp + 0x24], ecx
lea eax, [0x60c9c0]
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.00447cc0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x559bc6
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
test ecx, ecx
jne 0x559d71
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.00489c00
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x559d3e
mov ebx, dword [esp + 0x28]
test ebx, ebx
jbe 0x559dad
mov ebp, dword [esp + 0x40]
movzx esi, byte [ebp]
mov edi, dword [0x81fc8c]
mov eax, edx
mov edx, dword [0x81fc88]
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 0x559da4
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 0x559d98
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.0050bbf0
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.00502e70
mov eax, dword [esp + 8]
test eax, eax
jl 0x559d0d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
jmp 0x559bba
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 0x559bba
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.0045e9c0
mov eax, ebp
mov ecx, edi
call fcn.0045e9c0
xor eax, eax
mov ecx, ebx
call fcn.0045e9c0
mov eax, edx
mov ecx, 0x100
call fcn.0045e9d0
nop
call fcn.0045d530
jmp fcn.00559af0