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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51f29c
sub esp, 0x54
mov edx, dword [esp + 0x60]
mov ebx, dword [edx]
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 4]
lea esi, [ebp - 1]
test esi, esi
jl 0x51f27c
mov ebx, dword [ebx + ebp*4 - 4]
nop
cmp ebx, 0x10000
jb 0x51f275
shr ebx, 0x10
mov eax, 0x10
cmp ebx, 0x100
jb 0x51f26e
shr ebx, 8
lea ebp, [eax + 8]
cmp ebx, 0x100
jae 0x51f28f
shl esi, 5
lea eax, [0x5eca20]
movzx ecx, byte [ebx + eax]
add ecx, ebp
add ecx, esi
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.004d9260
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x68]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x38]
dec edx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.0051e7b0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x34]
test eax, eax
jne 0x51f23b
mov byte [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.004e92e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov byte [esp + 0x44], 0
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
lea ecx, [esp + 0x44]
mov dword [esp + 0xc], ecx
call fcn.005208f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x51f208
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x60]
mov edx, dword [edx]
mov ebx, dword [edx + 8]
mov edx, dword [edx + 4]
lea ebp, [ebx - 1]
test ebp, ebp
jl 0x51f201
mov edx, dword [edx + ebx*4 - 4]
nop
cmp edx, 0x10000
jb 0x51f1fa
shr edx, 0x10
mov eax, 0x10
cmp edx, 0x100
jb 0x51f1f3
shr edx, 8
lea ebx, [eax + 8]
cmp edx, 0x100
jae 0x51f283
shl ebp, 5
lea eax, [0x5eca20]
movzx eax, byte [edx + eax]
add eax, ebx
add eax, ebp
lea ecx, [0x643900]
mov dword [esp], ecx
lea ecx, [eax + 7]
sar ecx, 0x1f
shr ecx, 0x1d
lea eax, [eax + ecx + 7]
sar eax, 3
mov dword [esp + 0x3c], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00444130
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.004de730
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
add esp, 0x54
ret
mov ebx, eax
jmp 0x51f151
xor eax, eax
jmp 0x51f13f
xor eax, eax
jmp 0x51f16e
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
add esp, 0x54
ret
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ebp
add esp, 0x54
ret
mov ebp, eax
jmp 0x51efdb
xor eax, eax
jmp 0x51efc9
xor ecx, ecx
jmp 0x51eff8
mov eax, edx
mov ecx, 0x100
call fcn.0045c9b0
mov eax, ebx
mov ecx, 0x100
call fcn.0045c9b0
nop
call fcn.0045b380
jmp fcn.0051ef80