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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x10]
cmp eax, dword [ecx + 8]
jbe 0x551f75
sub esp, 0x90
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x551887
nop
movzx edx, byte [0x7efd88]
test dl, dl
je 0x551851
mov edx, dword [esp + 0xc4]
mov dword [0x7efd8c], edx
mov edx, dword [0x816df0]
test edx, edx
jne 0x55183d
mov eax, dword [esp + 0xc8]
mov dword [0x7efd90], eax
jmp 0x551858
lea edi, [0x7efd90]
mov eax, dword [esp + 0xc8]
call fcn.0045e5d0
jmp 0x551858
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x55187f
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x55188d
or edx, 0x80
jmp 0x55188d
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x55188d
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], eax
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0047d880
mov eax, dword [esp + 0x98]
mov ecx, dword [eax]
add ecx, dword [esp + 0xc]
mov dword [eax], ecx
mov edx, dword [esp + 0x9c]
cmp edx, ecx
jl 0x5518c7
xor ecx, ecx
jmp 0x551944
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x94]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 8
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0x90
ret
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 1]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
call fcn.0047d880
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0xc], eax
jle 0x551ba9
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.0047d540
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.0047d6f0
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x40], ebx
mov ebp, dword [esp + 0xb0]
mov dword [esp], ebp
mov esi, dword [esp + 0xb4]
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call eax
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test ecx, ecx
jne 0x551b2b
test al, al
je 0x55193d
lea edi, [esp + 0x78]
xor eax, eax
call fcn.0045e87a
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
call fcn.00408eb0
mov ecx, dword [esp + 8]
lea edx, [0x60d840]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], ecx
call fcn.00408eb0
mov ecx, dword [esp + 8]
lea edx, [0x60d840]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x8c], ecx
lea ecx, [0x64822d]
mov dword [esp], ecx
mov dword [esp + 4], 0x22
lea ecx, [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call fcn.004b47b0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
lea ecx, [0x69f8d4]
mov dword [esp], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 4], ecx
call fcn.00409020
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
add esp, 0x90
ret
mov eax, dword [ecx + 0x10]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov edx, dword [esp + 0x94]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0x90
ret
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x551c30
nop
movzx edx, byte [0x7efd88]
test dl, dl
je 0x551bfa
mov edx, dword [esp + 0xbc]
mov dword [0x7efd8c], edx
mov edx, dword [0x816df0]
test edx, edx
jne 0x551be6
mov eax, dword [esp + 0xc0]
mov dword [0x7efd90], eax
jmp 0x551c01
lea edi, [0x7efd90]
mov eax, dword [esp + 0xc0]
call fcn.0045e5d0
jmp 0x551c01
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x551c28
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x551c36
or edx, 0x80
jmp 0x551c36
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x551c36
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0047d880
mov eax, dword [esp + 0x98]
mov ecx, dword [eax]
add ecx, dword [esp + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0x9c]
cmp eax, ecx
jl 0x551c75
xor eax, eax
mov ecx, 1
jmp 0x551cf4
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x94]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 8
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0x90
ret
mov edx, dword [esp + 0x28]
inc edx
mov ecx, eax
mov eax, edx
mov dword [esp + 0x28], eax
mov byte [esp + 0x1f], cl
mov edx, dword [esp + 0x30]
mov dword [esp], edx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x20]
mov dword [esp + 8], ebp
call fcn.0047d880
mov eax, dword [esp + 0x28]
cmp dword [esp + 0xc], eax
jle 0x551e33
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.0047d540
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.0047d6f0
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0xb0]
mov dword [esp], ebp
mov esi, dword [esp + 0xb4]
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call eax
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test ecx, ecx
jne 0x551db5
test al, al
je 0x551ceb
jmp 0x551e38
mov eax, dword [ecx + 0x10]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov edx, dword [esp + 0x94]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0x90
ret
movzx eax, byte [esp + 0x1f]
test al, al
je 0x551e59
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0x90
ret
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
call fcn.00408eb0
mov eax, dword [esp + 8]
lea ecx, [0x60d840]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call fcn.00408eb0
mov eax, dword [esp + 8]
lea ecx, [0x60d840]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
lea eax, [0x64a50e]
mov dword [esp], eax
mov dword [esp + 4], 0x28
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b47b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov edx, dword [esp + 0x94]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
lea eax, [0x69f8d4]
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00409020
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0x90
ret
call fcn.0045d190
jmp fcn.005517e0