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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x51fc47
sub esp, 0x8c
mov eax, dword [esp + 0xac]
lea ecx, [eax + 1]
mov dword [esp], ecx
call fcn.0051f110
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xac]
sub ecx, edx
mov ebp, dword [eax + 4]
mov dword [esp + 0x40], ebp
mov esi, dword [eax + 8]
mov edi, dword [eax]
lea ebp, [edx - 1]
cmp ebp, edx
jae 0x51fc3d
mov dword [esp + 0x50], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x84], edi
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + edx*4 - 4]
mov dword [esp + 0x30], ecx
mov dword [esp], ecx
call fcn.0051aa80
mov eax, dword [esp + 4]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xa8]
jmp 0x51f9c1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x34], ebx
mov dword [esp], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
call fcn.00525510
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x4c]
cmp eax, edi
jbe 0x51fb78
mov eax, dword [esp + 0x48]
dec eax
mov ecx, esi
mov esi, dword [esp + 0x30]
lea ebx, [edi + esi]
cmp edi, ebx
jbe 0x51f7ae
mov ebx, dword [esp + 0x44]
cmp edx, ebx
ja 0x51fc10
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.005256b0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x40]
cmp ecx, edx
jae 0x51fc07
mov ebx, dword [esp + 0x84]
mov dword [ebx + ecx*4], eax
mov ebp, dword [esp + 0x60]
lea esi, [edx + ebp]
mov edi, dword [esp + 0xa0]
cmp edi, esi
jge 0x51fb71
test eax, eax
jne 0x51fb71
lea esi, [edx - 1]
mov dword [esp + 0x3c], esi
mov eax, ebx
lea ebx, [esi + ebp]
mov esi, dword [esp + 0xa4]
cmp ebx, esi
ja 0x51fbfe
cmp ebp, ebx
ja 0x51fbf5
sub esi, ebp
mov dword [esp + 0x58], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ebp, 2
sar esi, 0x1f
and esi, ebp
mov ebp, dword [esp + 0x9c]
add esi, ebp
mov ebx, dword [esp + 0x60]
cmp edi, ebx
jb 0x51fbec
mov dword [esp + 0x88], esi
mov dword [esp], esi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
mov ebp, dword [esp + 0x58]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
sub edi, ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x20], edx
call fcn.00525570
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x51faba
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x60]
cmp ebx, ebp
jne 0x51fab1
mov ecx, dword [esp + 0x94]
cmp ebx, ecx
jne 0x51fa9a
test eax, eax
jne 0x51fa9a
lea eax, [ebp - 1]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0xac]
mov ebx, esi
mov ebp, edi
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xa8]
mov ecx, eax
mov eax, dword [esp + 0x38]
test ecx, ecx
jl 0x51fba8
lea esi, [ecx + ebp]
mov dword [esp + 0x64], esi
cmp ebx, esi
jle 0x51fba1
jbe 0x51fc34
mov esi, dword [edx + esi*4]
mov dword [esp + 0x60], ecx
mov edi, dword [esp + 0x30]
cmp edi, esi
je 0x51fb91
lea ebp, [ecx + ebp - 1]
cmp ebx, ebp
jbe 0x51fc2b
mov ecx, dword [edx + ebp*4]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call fcn.0051a790
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xac]
lea ebx, [edx - 2]
cmp edx, ebx
jbe 0x51fc22
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx + edx*4 - 8]
mov dword [esp + 0x2c], ebx
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00525510
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x60]
lea ebp, [ebx + edx - 2]
mov esi, dword [esp + 0xa0]
cmp esi, ebp
jbe 0x51fc19
mov edi, dword [esp + 0x9c]
mov ebp, dword [edi + ebp*4]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x78]
jmp 0x51f81b
cmp ebp, ecx
jae 0x51fbd2
mov esi, dword [esp + 0x90]
mov dword [esi + ebp*4], eax
jmp 0x51f98d
mov ecx, dword [esp + 0x94]
jmp 0x51fa9a
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xa4]
cmp ecx, edx
ja 0x51fbe7
mov eax, dword [esp + 0x60]
cmp eax, ecx
ja 0x51fbe2
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x20], edx
call fcn.00525530
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x3c]
cmp ecx, edx
jge 0x51fb61
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x64]
cmp ebx, ebp
jbe 0x51fbd9
mov esi, dword [esp + 0x9c]
add dword [esi + ebp*4], eax
mov ebp, dword [esp + 0x48]
lea eax, [ebp - 1]
jmp 0x51f966
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0x9c]
jmp 0x51fb55
mov esi, edx
jmp 0x51f8cc
jne 0x51fb82
cmp ebp, ecx
jb 0x51f827
mov ecx, esi
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
jmp 0x51f83d
mov ecx, ebx
mov edx, ebp
mov esi, edi
mov eax, 0xffffffff
jmp 0x51f83d
xor esi, esi
jmp 0x51f9e1
lea eax, [0x753230]
mov dword [esp], eax
lea eax, [0x5e8cc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.00467300
add esp, 0x8c
ret
mov eax, ebp
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
call fcn.0045e050
call fcn.0045e030
mov eax, ebx
mov ecx, edi
call fcn.0045e050
mov eax, ebp
mov ecx, ebx
call fcn.0045e050
mov ecx, ebx
mov edx, esi
call fcn.0045e030
mov eax, ecx
mov ecx, edx
call fcn.0045dff0
mov ecx, edx
mov edx, ebx
call fcn.0045e030
mov eax, ebp
mov ecx, esi
call fcn.0045dff0
mov eax, ebx
mov ecx, edx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, esi
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, edx
call fcn.0045dff0
nop
call fcn.0045ca10
jmp fcn.0051f6f0