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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51f54e
sub esp, 0x48
mov edx, dword [esp + 0x68]
test edx, edx
je 0x51f4fa
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x51f4f8
test edx, edx
je 0x51f4f1
mov edx, dword [edx]
mov dword [esp + 0x3c], ebx
cmp edx, 0xffffffff
jne 0x51f442
nop
lea edx, [ebx - 1]
cmp edx, 0x13
jae 0x51f50a
mov ecx, dword [0x61c454]
mov edx, dword [0x61c450]
cmp ecx, ebx
jbe 0x51f503
movzx eax, byte [ebx + edx]
mov dword [esp + 0x40], eax
lea ecx, [0x643900]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00444130
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
call fcn.00494e20
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x51f3c6
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
add esp, 0x48
ret
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
call fcn.0051ef80
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebp
add esp, 0x48
ret
test edx, edx
jne 0x51f4ea
mov edx, dword [esp + 0x54]
mov ebp, dword [edx]
mov esi, dword [ebp + 8]
mov ebp, dword [ebp + 4]
lea edi, [esi - 1]
test edi, edi
jl 0x51f4e4
mov ebp, dword [ebp + esi*4 - 4]
nop
cmp ebp, 0x10000
jb 0x51f4e0
shr ebp, 0x10
mov eax, 0x10
cmp ebp, 0x100
jb 0x51f4dc
shr ebp, 8
lea esi, [eax + 8]
cmp ebp, 0x100
jae 0x51f541
shl edi, 5
mov eax, edx
lea edx, [0x5eca20]
movzx edx, byte [ebp + edx]
add edx, esi
add edx, edi
lea ebp, [edx + 7]
sar ebp, 0x1f
shr ebp, 0x1d
lea edx, [ebp + edx + 7]
lea ebp, [ebx - 1]
cmp ebp, 0x13
jae 0x51f529
mov ecx, dword [0x61c454]
mov ebp, dword [0x61c450]
cmp ecx, ebx
jbe 0x51f522
sar edx, 3
lea ecx, [edx - 2]
movzx edx, byte [ebx + ebp]
sub ecx, edx
mov eax, ecx
jmp 0x51f34c
mov esi, eax
jmp 0x51f484
xor eax, eax
jmp 0x51f476
mov eax, edx
xor edx, edx
jmp 0x51f4a4
mov eax, edx
jmp 0x51f34c
xor edx, edx
jmp 0x51f31a
test edx, edx
mov ebx, dword [esp + 0x58]
jmp 0x51f312
mov eax, ebx
call fcn.0045c9b0
lea eax, [0x643700]
mov dword [esp], eax
lea eax, [0x6c77f0]
mov dword [esp + 4], eax
call fcn.00431bb0
mov eax, ebx
call fcn.0045c9b0
lea eax, [0x643700]
mov dword [esp], eax
lea eax, [0x6c77e8]
mov dword [esp + 4], eax
call fcn.00431bb0
mov eax, ebp
mov ecx, 0x100
call fcn.0045c9b0
nop
call fcn.0045b380
jmp fcn.0051f2e0