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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51f506
sub esp, 0x80
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
xor ebx, ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
cmp edx, 0
jne 0x51f236
xor ebx, ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
add esp, 0x80
ret
cmp edx, 1
jne 0x51f261
cmp edx, 0
jbe 0x51f25a
mov ebp, dword [edi]
mov dword [esp + 0x98], ebp
mov ebp, dword [edi + 4]
mov dword [esp + 0x9c], ebp
add esp, 0x80
ret
call fcn.00428880
ud2
mov ecx, dword [esp + 0x94]
mov ebx, edx
dec ebx
imul ebx, ecx
mov ecx, ebx
xor eax, eax
cmp eax, edx
jge 0x51f291
mov ebx, eax
cmp eax, edx
jae 0x51f4ff
mov ebp, edi
shl ebx, 3
add ebp, ebx
mov ebp, dword [ebp + 4]
add ecx, ebp
inc eax
cmp eax, edx
jl 0x51f276
mov dword [esp], 0x5c4440
mov eax, ecx
cdq
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, ecx
cdq
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.0043c2d0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x88], 0
jbe 0x51f4f8
mov ebx, dword [esp + 0x84]
mov esi, dword [ebx]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x40], ebp
cmp ebp, eax
jge 0x51f2f7
mov eax, ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], edi
mov dword [esp], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.004537a0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
cmp ecx, 1
jb 0x51f4f1
mov ebp, ecx
dec ebp
dec edx
mov ecx, dword [esp + 0x84]
cmp edx, 0
je 0x51f341
add ecx, 8
mov esi, ebp
mov ebp, edx
mov dword [esp + 0x74], ecx
mov edx, ecx
mov dword [esp + 0x78], esi
mov ecx, esi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x70], ebp
xor esi, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x68], edx
mov ecx, edx
mov ebp, dword [esp + 0x28]
cmp esi, ebp
jge 0x51f49b
mov dword [esp + 0x30], ecx
cmp ecx, 0
je 0x51f4ea
mov edx, dword [ecx]
mov ebp, dword [ecx + 4]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
cmp eax, ecx
ja 0x51f4e3
mov ebp, ecx
sub ebp, eax
sub edx, eax
mov ecx, dword [esp + 0x44]
cmp edx, 0
je 0x51f3b8
add ecx, eax
mov eax, ebp
mov dword [esp + 0x5c], ecx
mov ebp, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], edx
cmp edx, eax
jge 0x51f3e8
mov eax, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], ebp
mov dword [esp], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.004537a0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
cmp eax, ecx
ja 0x51f4dc
mov ebp, ecx
sub ebp, eax
sub edx, eax
mov ecx, dword [esp + 0x44]
cmp edx, 0
je 0x51f433
add ecx, eax
mov dword [esp + 0x50], ecx
mov esi, ecx
mov dword [esp + 0x54], ebp
mov eax, ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], edx
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x60], eax
mov dword [esp + 0x40], edx
cmp edx, eax
jge 0x51f45d
mov eax, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], esi
mov dword [esp], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.004537a0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x30]
add ecx, 8
mov esi, dword [esp + 0x2c]
inc esi
mov ebp, dword [esp + 0x28]
cmp esi, ebp
jl 0x51f375
mov dword [esp], 0
mov ebx, dword [esp + 0x44]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0xc], ebx
call fcn.00440110
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x9c], ebx
add esp, 0x80
ret
call fcn.004288f0
ud2
call fcn.004288f0
ud2
mov dword [ecx], eax
jmp 0x51f382
call fcn.004288f0
ud2
call fcn.00428880
ud2
call fcn.00428880
ud2
call fcn.00450fb0
jmp fcn.0051f1e0