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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x510b98
sub esp, 0x5c
mov eax, dword [esp + 0x74]
test eax, eax
je 0x510b68
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
jmp 0x510947
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x30]
sub eax, edi
cmp eax, 4
jl 0x510b5f
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
sub edx, eax
cmp edx, 4
jl 0x510a84
mov esi, dword [esp + 0x68]
cmp eax, esi
ja 0x510b91
sub ebx, eax
mov dword [esp + 0x3c], ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
add ebx, ecx
mov ecx, dword [esp + 0x74]
cmp edi, ecx
ja 0x510b91
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], ebx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x78]
sub ecx, edi
mov dword [esp + 0x34], ecx
neg ecx
sar ecx, 0x1f
and ecx, edi
mov eax, dword [esp + 0x70]
add ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], ecx
call fcn.00510bb0
movzx eax, byte [esp + 0x1c]
test al, al
je 0x5109ff
mov eax, dword [esp + 0x44]
add eax, 3
mov ecx, dword [esp + 0x30]
add ecx, 4
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x58]
jmp 0x51090f
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
call fcn.005102b0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
add ebx, ebp
test ecx, ecx
jne 0x510a6e
mov ebp, ecx
mov ecx, edx
mov edx, ebp
mov esi, ebx
mov ebx, eax
mov eax, esi
jmp 0x51090f
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
add esp, 0x5c
ret
mov edx, dword [esp + 0x74]
jmp 0x510ab0
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x78]
mov esi, edi
mov edi, edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], ecx
mov eax, ebx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x6c]
cmp edi, edx
jge 0x510b41
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x68]
cmp eax, edi
ja 0x510b8a
mov dword [esp + 0x44], eax
mov dword [esp], ebp
sub ebx, eax
mov dword [esp + 0x40], ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
add ebx, ecx
mov dword [esp + 4], ebx
sub edi, eax
mov dword [esp + 8], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
call fcn.005102b0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
add ebx, ebp
test ecx, ecx
je 0x510a8a
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
add esp, 0x5c
ret
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x84], eax
add esp, 0x5c
ret
mov eax, dword [esp + 0x44]
jmp 0x510a84
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
add esp, 0x5c
ret
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.00449f20
jmp fcn.005108b0