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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [0x567b10]
xor eax, ebp
mov dword [esp + 0x90], eax
mov eax, ecx
sub eax, edi
cmp eax, 0xa50
jge 0x51af17
mov al, byte [esp + 0x3c]
mov byte [esp + 8], al
mov dword [esp + 4], ecx
mov dword [esp], edi
call 0x51b250
jmp 0x51b234
mov esi, dword [ebp + 0x10]
test esi, esi
jle 0x51afea
mov ebx, ecx
nop word cs:[eax + eax]
nop
mov dword [esp + 0x10], ecx
movzx eax, byte [esp + 0x38]
mov byte [esp + 0xc], al
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
lea eax, [esp + 0x40]
mov dword [esp], eax
call fcn.0051b4e0
mov eax, esi
shr eax, 1
shr esi, 2
add esi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, eax
sub edx, edi
sar edx, 4
imul edx, edx, 0xcccccccd
sub ebx, ecx
sar ebx, 4
imul ebx, ebx, 0xcccccccd
cmp edx, ebx
jge 0x51afb0
movzx ecx, byte [esp + 0x34]
mov byte [esp + 0xc], cl
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0051aed0
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
jmp 0x51afd1
movzx eax, byte [esp + 0x30]
mov byte [esp + 0xc], al
mov dword [esp + 8], esi
mov eax, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0051aed0
mov ecx, dword [esp + 0x40]
mov eax, ecx
sub eax, edi
cmp eax, 0xa50
jl 0x51aefe
mov ebx, ecx
test esi, esi
jne 0x51af30
mov dword [esp + 0x10], ecx
mov ecx, 0xcccccccd
mul ecx
mov esi, edx
mov eax, edx
shr eax, 6
shr esi, 7
mov dword [esp + 0x2c], eax
add eax, 0xffffffff
mov ecx, eax
sar ecx, 1
mov dword [esp + 0x28], eax
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + ecx*4]
shl eax, 4
add eax, edi
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x40]
jmp 0x51b04d
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00533ac0
cmp esi, 1
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x40]
jle 0x51b1ff
lea ebx, [esi - 1]
lea eax, [ebx + ebx*4]
shl eax, 4
add eax, edi
mov dword [esp], eax
call fcn.0051a9b0
sub esp, 4
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x18], esi
jge 0x51b1a0
test byte [esp + 0x2c], 1
jne 0x51b095
cmp ebx, dword [esp + 0x18]
jne 0x51b095
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov ecx, dword [esp + 0x20]
call fcn.0051b730
sub esp, 4
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x14], esi
cmp ebx, esi
jge 0x51b0b0
mov esi, ebx
jmp 0x51b0e5
lea esi, [ebx - 1]
sar esi, 1
lea eax, [esi + esi*4]
shl eax, 4
movsd xmm0, qword [esp + 0x40]
ucomisd xmm0, qword [edi + eax]
jbe 0x51b09d
add eax, edi
lea ecx, [ebx + ebx*4]
shl ecx, 4
add ecx, edi
mov dword [esp], eax
call fcn.0051b730
sub esp, 4
mov ebx, esi
cmp esi, dword [esp + 0x14]
jge 0x51b0b0
lea ecx, [esi + esi*4]
shl ecx, 4
add ecx, edi
lea ebx, [esp + 0x40]
mov dword [esp], ebx
call fcn.0051b730
sub esp, 4
mov eax, dword [esp + 0x8c]
cmp eax, 0x10
mov esi, dword [esp + 0x14]
jb 0x51b143
mov ecx, dword [esp + 0x78]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x51b137
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x51b24a
add eax, 0x24
mov edx, eax
mov ecx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00533ac0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0xf
mov byte [esp + 0x78], 0
mov eax, dword [esp + 0x74]
cmp eax, 0x10
jb 0x51b03c
mov ecx, dword [esp + 0x60]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x51b030
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x51b24a
add eax, 0x24
mov edx, eax
mov ecx, esi
mov esi, dword [esp + 0x14]
jmp 0x51b030
mov eax, dword [esp + 0x1c]
jmp 0x51b1d7
lea edx, [ebx + ebx*4]
shl edx, 4
add edx, edi
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, edi
mov dword [esp], edx
call fcn.0051b730
sub esp, 4
mov eax, ebx
cmp ebx, dword [esp + 0x18]
jge 0x51b071
lea ecx, [eax + eax]
add ecx, 2
lea ebx, [eax + eax]
add ebx, 1
lea edx, [ebx + ebx*4]
shl edx, 4
movsd xmm0, qword [edi + edx]
lea edx, [ecx + ecx*4]
shl edx, 4
ucomisd xmm0, qword [edi + edx]
ja 0x51b1b0
mov ebx, ecx
jmp 0x51b1b0
mov ecx, dword [esp + 0x10]
mov esi, ecx
sub esi, edi
nop word [eax + eax]
movzx eax, byte [esp + 0x40]
mov byte [esp + 8], al
mov dword [esp + 4], ecx
mov dword [esp], edi
mov ebx, ecx
call fcn.0051b820
mov ecx, ebx
add ecx, 0xffffffb0
add esi, 0xffffffb0
cmp esi, 0x50
jg 0x51b210
mov ecx, dword [esp + 0x90]
xor ecx, ebp
call fcn.00533ace
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov edi, dword [ebp + 8]
mov eax, dword [0x567b10]
xor eax, ebp
mov dword [esp + 0x60], eax
cmp edi, dword [ebp + 0xc]
je 0x51b4b9
lea ebx, [edi + 0x50]
cmp ebx, dword [ebp + 0xc]
je 0x51b4b9
mov dword [esp + 4], 0xffffffb0
mov eax, edi
jmp 0x51b2b2
push esi
push ecx
call fcn.00533ac0
add esp, 8
add ebx, 0x50
add dword [esp + 4], 0xffffffb0
mov eax, dword [esp + 8]
add eax, 0x50
cmp ebx, dword [ebp + 0xc]
je 0x51b4b9
mov dword [esp + 8], eax
lea ecx, [esp + 0x10]
push ebx
call fcn.0051a9b0
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [edi]
ucomisd xmm1, xmm0
mov dword [esp], ebx
jbe 0x51b310
mov eax, edi
mov ecx, ebx
mov ebx, edi
cmp ecx, edi
je 0x51b423
xor esi, esi
mov ebx, dword [esp + 4]
mov edi, dword [esp + 8]
nop dword [eax + eax]
lea eax, [edi + esi]
mov ecx, dword [esp]
add ecx, esi
push eax
call fcn.0051b730
add esi, 0xffffffb0
cmp ebx, esi
jne 0x51b2f0
mov ebx, dword [ebp + 8]
jmp 0x51b423
movsd xmm1, qword [ebx - 0x50]
ucomisd xmm1, xmm0
jbe 0x51b423
mov eax, dword [esp]
lea ebx, [eax - 0x50]
jmp 0x51b35e
sub esp, 0xc
movzx ecx, byte [esp + 0x18]
mov byte [esp + 4], cl
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, esi
call fcn.00404140
movsd xmm0, qword [ebx - 0x50]
add ebx, 0xffffffb0
ucomisd xmm0, qword [esp + 0x10]
jbe 0x51b420
movups xmm0, xmmword [ebx]
movupd xmm1, xmmword [ebx + 0x10]
movupd xmmword [ebx + 0x60], xmm1
movups xmmword [ebx + 0x50], xmm0
cmp dword [ebx + 0x34], 0xf
jbe 0x51b380
mov eax, dword [ebx + 0x20]
jmp 0x51b383
lea eax, [ebx + 0x20]
lea esi, [ebx + 0x70]
mov edi, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x84]
cmp ecx, edi
jae 0x51b3b0
sub esp, 0xc
movzx ecx, byte [esp + 0x18]
mov byte [esp + 4], cl
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, esi
call fcn.00404140
jmp 0x51b3cd
cmp ecx, 0x10
jb 0x51b3b8
mov esi, dword [ebx + 0x70]
mov dword [ebx + 0x80], edi
push edi
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + edi], 0
mov edi, dword [ebx + 0x48]
cmp dword [ebx + 0x4c], 0xf
jbe 0x51b3e0
mov eax, dword [ebx + 0x38]
jmp 0x51b3e3
lea eax, [ebx + 0x38]
lea esi, [ebx + 0x88]
mov ecx, dword [ebx + 0x9c]
cmp ecx, edi
jb 0x51b330
cmp ecx, 0x10
jb 0x51b402
mov esi, dword [ebx + 0x88]
mov dword [ebx + 0x98], edi
push edi
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x51b34a
add ebx, 0x50
mov ecx, ebx
lea eax, [esp + 0x10]
push eax
call fcn.0051b730
mov eax, dword [esp + 0x5c]
cmp eax, 0x10
mov edi, dword [ebp + 8]
mov ebx, dword [esp]
jb 0x51b46b
mov ecx, dword [esp + 0x48]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x51b461
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x51b4cf
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.00533ac0
add esp, 8
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0x44]
cmp eax, 0x10
jb 0x51b29a
mov ecx, dword [esp + 0x30]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x51b290
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x51b4cf
add eax, 0x24
mov esi, eax
mov ecx, edx
jmp 0x51b290
mov ecx, dword [esp + 0x60]
xor ecx, ebp
call fcn.00533ace
mov eax, dword [ebp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3