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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 4]
cmp eax, dword [ecx + 8]
jbe 0x51eb34
sub esp, 0x84
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x51ea86
cmp ecx, 1
je 0x51e9b8
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x51e99e
mov ebx, dword [esp + 0x88]
lea ebp, [ebx + eax*4 - 4]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x94]
lea edi, [esi + edx*4 - 4]
cmp ebp, edi
jne 0x51e35c
xor eax, eax
xor ebx, ebx
cmp dword [0x7200fc], ecx
jg 0x51e86e
mov ebp, dword [0x720100]
cmp ecx, ebp
jl 0x51e74a
nop
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov ecx, edi
jmp 0x51e395
sar ecx, 1
mov esi, dword [esp + 0x68]
inc esi
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x94]
cmp ebp, ecx
jl 0x51e383
mov dword [esp + 0x80], ebx
mov dword [esp + 0x64], ecx
mov ebp, dword [esp + 0x68]
cmp ebp, 0x20
sbb esi, esi
mov ecx, ebp
mov ebx, dword [esp + 0x64]
shl ebx, cl
and esi, ebx
cmp edx, esi
jb 0x51eae9
lea ebx, [esi + esi*2]
shl ebx, 1
mov ebp, edi
shl edi, 1
cmp ebx, edi
jle 0x51e743
mov dword [esp + 0x48], esi
mov dword [esp + 0x8c], edi
cmp eax, ebx
jl 0x51e6c5
jb 0x51eae0
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x90], eax
mov dword [esp + 0x88], ecx
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x94]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
call fcn.0051ded0
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
cmp ecx, edx
ja 0x51eadb
mov eax, dword [esp + 0x48]
mov ebx, eax
shl eax, 1
cmp ecx, eax
jb 0x51ead6
mov dword [esp + 0x70], eax
sub edx, eax
mov esi, edx
neg edx
shl ebx, 3
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0x88]
add ebx, edx
mov dword [esp], ebx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.0051bbc0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x48]
cmp eax, ecx
jg 0x51e4d9
mov edi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov eax, edi
jmp 0x51e497
mov edi, ebp
test edi, edi
jle 0x51e4ae
lea ebp, [edi - 1]
cmp eax, ebp
jbe 0x51eabb
mov esi, dword [ebx + edi*4 - 4]
test esi, esi
je 0x51e495
mov edx, dword [esp + 0x90]
cmp edx, edi
jb 0x51eab4
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edx
add esp, 0x84
ret
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call fcn.0051f110
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp + 0x5c], ebx
nop
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x48]
mov edi, esi
jmp 0x51e50b
mov esi, ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x54], esi
test esi, esi
jle 0x51e526
lea ebx, [esi - 1]
cmp edi, ebx
jbe 0x51eacd
mov esi, dword [ebp + esi*4 - 4]
test esi, esi
je 0x51e505
mov ebx, dword [esp + 0x9c]
mov esi, dword [esp + 0x54]
cmp ebx, esi
jb 0x51eac4
mov dword [esp + 0x78], eax
mov dword [esp], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
sub ebx, edi
mov dword [esp + 0x50], ebx
mov eax, ebx
neg ebx
mov ecx, edi
shl edi, 2
sar ebx, 0x1f
and edi, ebx
lea edx, [edi + ebp]
mov dword [esp + 0x74], edx
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x98]
sub ebx, ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
call fcn.0051d130
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x90]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x48]
mov dword [esp + 0x18], edi
call fcn.0051d020
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0x60]
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x18], edi
call fcn.0051d020
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
call fcn.0051e2f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x90]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
call fcn.0051d020
lea eax, [0x753230]
mov dword [esp], eax
lea eax, [0x5e8cc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call fcn.00467300
jmp 0x51e483
cmp ebx, 1
jne 0x51e706
lea eax, [0x5be500]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00444f30
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x48]
mov eax, 1
mov ebx, 1
jmp 0x51e3f0
mov dword [esp + 0x38], ebx
lea eax, [0x5be500]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea eax, [ebx + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 8], eax
call fcn.00444f30
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
jmp 0x51e3f0
mov ebx, edi
jmp 0x51e3d0
mov ebp, ecx
shl ecx, 1
cmp ecx, eax
jg 0x51e7ea
ja 0x51eb00
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ebx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov esi, dword [esp + 0x94]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
call fcn.0051dbf0
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov edx, eax
jmp 0x51e7a8
mov eax, ebx
test eax, eax
jle 0x51e7bf
lea ebx, [eax - 1]
cmp edx, ebx
jbe 0x51eaf7
mov ebp, dword [ecx + eax*4 - 4]
test ebp, ebp
je 0x51e7a6
mov edx, dword [esp + 0x90]
cmp edx, eax
jb 0x51eaf0
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
add esp, 0x84
ret
cmp ecx, 1
jne 0x51e82e
lea eax, [0x5be500]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00444f30
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov eax, 1
mov ecx, 1
jmp 0x51e75c
mov dword [esp + 0x34], ecx
lea eax, [0x5be500]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 4]
mov dword [esp + 0x3c], eax
mov dword [esp + 8], eax
call fcn.00444f30
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jmp 0x51e75c
mov ebp, ecx
shl ecx, 1
cmp ecx, eax
jg 0x51e91a
ja 0x51eb17
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x88], ebx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov esi, dword [esp + 0x94]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
call fcn.0051c290
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov edx, eax
jmp 0x51e8d8
mov eax, ebx
test eax, eax
jle 0x51e8ef
lea ebx, [eax - 1]
cmp edx, ebx
jbe 0x51eb0e
mov ebp, dword [ecx + eax*4 - 4]
test ebp, ebp
je 0x51e8d6
mov edx, dword [esp + 0x90]
cmp edx, eax
jb 0x51eb07
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
add esp, 0x84
ret
cmp ecx, 1
jne 0x51e95e
lea eax, [0x5be500]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00444f30
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov ecx, 1
mov eax, 1
jmp 0x51e880
mov dword [esp + 0x30], ecx
lea eax, [0x5be500]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
call fcn.00444f30
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
jmp 0x51e880
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 0x88]
jmp 0x51e35c
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov ecx, dword [esp + 0x90]
cmp ecx, 2
jl 0x51ea52
mov edx, dword [esp + 0x88]
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], ecx
mov dword [esp], eax
mov dword [esp + 4], eax
call fcn.00525510
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x88]
mov dword [edx + 4], eax
mov dword [edx], ecx
mov eax, 2
jmp 0x51ea0f
mov eax, ebx
test eax, eax
jle 0x51ea27
lea ebx, [eax - 1]
cmp ebx, 2
jae 0x51eb27
mov ebp, dword [edx + eax*4 - 4]
test ebp, ebp
je 0x51ea0d
mov ebx, dword [esp + 0x90]
cmp eax, ebx
ja 0x51eb1e
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebx
add esp, 0x84
ret
mov dword [esp + 0x6c], eax
lea eax, [0x5be500]
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 8], 6
call fcn.00444f30
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
mov ecx, 6
jmp 0x51e9d8
mov eax, dword [esp + 0x88]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0x90]
mov dword [esp + 0xa8], eax
add esp, 0x84
ret
mov ecx, edi
call fcn.0045e030
mov ecx, eax
mov eax, ebp
call fcn.0045dff0
mov ecx, esi
mov edx, ebx
call fcn.0045e030
mov eax, ebx
mov ecx, edi
call fcn.0045dff0
call fcn.0045e050
call fcn.0045e030
mov ecx, ebx
mov edx, eax
call fcn.0045e030
mov ecx, esi
call fcn.0045e030
mov ecx, eax
call fcn.0045e030
mov eax, ebx
mov ecx, edx
call fcn.0045dff0
mov edx, eax
call fcn.0045e030
mov ecx, eax
call fcn.0045e030
mov eax, ebx
mov ecx, edx
call fcn.0045dff0
mov edx, eax
call fcn.0045e030
mov ecx, eax
mov edx, ebx
call fcn.0045e030
mov eax, ebx
mov ecx, 2
call fcn.0045dff0
nop
call fcn.0045ca10
jmp fcn.0051e2f0