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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x9c
mov esi, edx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x84], eax
cmp dword [ecx + 0x75f0], 0
je 0x5762cd
mov edx, ecx
mov eax, dword [ecx + 0x75e8]
jmp 0x5762d8
mov edx, ecx
mov eax, dword [esp + 0xb0]
add eax, esi
mov dword [esp + 0x60], eax
mov ebx, dword [edx + 0x7570]
mov dword [esp + 0x64], ebx
mov ecx, dword [edx + 0x7580]
add ecx, ebx
mov dword [esp + 0x6c], ecx
cmp dword [esp + 0xbc], 0
je 0x5763b0
mov edi, dword [esp + 0xb8]
mov eax, dword [edx + 0x74b0]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x74b4]
mov dword [esp + 0x74], eax
mov eax, dword [edx + 0x74b8]
mov dword [esp + 0x70], eax
mov dword [edx + 0x7504], 1
mov eax, dword [edx + 0x6834]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], edx
movsd xmm0, qword [edx + 0x682c]
movsd qword [esp + 0x54], xmm0
mov eax, 0xffffffec
test edi, edi
je 0x576fe0
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x34], edx
lea ecx, [edx + 4]
mov dword [esp + 0x38], ecx
cmp edi, 4
mov dword [esp + 0x14], esi
jb 0x5763eb
lea ecx, [edx + edi]
add ecx, 0xfffffffc
mov dword [esp + 0x30], ecx
mov ebp, dword [edx + edi - 4]
mov dword [esp + 0x28], ebp
cmp ebp, 0x1000000
jb 0x576fe0
cmp edi, 0xffffff88
ja 0x576fe0
add edi, 0xfffffffc
mov eax, ebp
shr eax, 0x18
bsr eax, eax
xor eax, 0x1f
add eax, 0xffffffe9
jmp 0x576433
mov ebp, esi
mov edx, dword [esp + 0x6c]
sub edx, ebx
mov edi, dword [esp + 0x60]
sub edi, ebp
cmp edx, edi
mov eax, 0xffffffba
ja 0x576fe0
test ebp, ebp
je 0x57649d
mov ecx, edx
mov edi, edx
push ecx
push ebx
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebp, edi
mov eax, ebp
jmp 0x57649f
mov dword [esp + 0x30], edx
movzx ebp, byte [edx]
mov dword [esp + 0x28], ebp
cmp edi, 2
je 0x576409
cmp edi, 3
jne 0x576416
movzx ecx, byte [edx + 2]
shl ecx, 0x10
or ebp, ecx
movzx ecx, byte [edx + 1]
shl ecx, 8
add ebp, ecx
mov dword [esp + 0x28], ebp
movzx ecx, byte [edi + edx - 1]
test ecx, ecx
je 0x576fe0
bsr eax, ecx
xor eax, 0x1f
shl edi, 3
sub eax, edi
add eax, 9
xor edi, edi
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
mov ebx, ecx
mov esi, dword [ecx + 4]
add eax, esi
mov ecx, eax
neg cl
mov edx, ebp
shr edx, cl
and edx, dword [esi*4 + 0x68b108]
mov dword [esp + 0x3c], edx
mov esi, eax
cmp eax, 0x20
mov dword [esp + 0x10], edx
jbe 0x576466
mov dword [esp + 4], edi
mov eax, esi
jmp 0x5764cf
cmp edi, 4
jge 0x5764a6
test edi, edi
je 0x576feb
mov ebp, dword [esp + 0xb4]
lea ecx, [edi + ebp]
mov eax, esi
mov edx, esi
shr edx, 3
sub ecx, edx
cmp ecx, ebp
cmovb edx, edi
sub edi, edx
lea ecx, [edi + ebp]
mov dword [esp + 0x30], ecx
shl edx, 3
sub eax, edx
mov edx, ebp
jmp 0x5764c0
xor eax, eax
sub eax, esi
jmp 0x576fe0
mov eax, esi
mov ecx, esi
shr ecx, 3
sub edi, ecx
mov edx, dword [esp + 0xb4]
lea ecx, [edx + edi]
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp + 0x2c], eax
mov dword [esp + 4], edi
mov ebp, dword [edx + edi]
mov dword [esp + 0x28], ebp
mov esi, dword [esp + 0x1c]
add ebx, 8
mov dword [esp + 0xc], ebx
mov dword [esp + 0x40], ebx
mov edi, dword [esi + 8]
mov ebx, dword [edi + 4]
add eax, ebx
mov ecx, eax
neg cl
mov edx, ebp
shr ebp, cl
and ebp, dword [ebx*4 + 0x68b108]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x44], ebp
mov ecx, eax
cmp eax, 0x20
jbe 0x576508
mov ebp, edx
jmp 0x57657a
mov ebx, dword [esp + 4]
cmp ebx, 4
jge 0x576555
test ebx, ebx
je 0x576ffa
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xb4]
lea ebx, [edx + eax]
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
shr edx, 3
sub ebx, edx
cmp ebx, edi
mov ebx, dword [esp + 4]
cmovb edx, ebx
sub ebx, edx
lea ecx, [edi + ebx]
mov dword [esp + 0x30], ecx
shl edx, 3
sub eax, edx
mov edx, edi
mov edi, esi
mov esi, dword [esp + 0x1c]
jmp 0x57656d
mov eax, ecx
shr ecx, 3
sub ebx, ecx
mov edx, dword [esp + 0xb4]
lea ecx, [edx + ebx]
mov dword [esp + 0x30], ecx
and eax, 7
mov ecx, eax
mov dword [esp + 4], ebx
mov ebp, dword [edx + ebx]
mov dword [esp + 0x28], ebp
add edi, 8
mov dword [esp + 0x48], edi
mov edx, dword [esi + 4]
mov ebx, dword [edx + 4]
mov eax, ecx
add eax, ebx
mov ecx, eax
neg cl
shr ebp, cl
and ebp, dword [ebx*4 + 0x68b108]
mov dword [esp + 0x4c], ebp
mov dword [esp], eax
cmp eax, 0x20
jbe 0x5765aa
mov eax, esi
mov esi, edi
jmp 0x576603
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xb4]
lea ebx, [ecx + eax]
cmp eax, 4
jge 0x5765e3
test eax, eax
je 0x5765a4
mov esi, dword [esp]
shr esi, 3
mov ecx, ebx
sub ecx, esi
cmp ecx, dword [esp + 0xb4]
cmovb esi, eax
sub ebx, esi
mov dword [esp + 0x30], ebx
shl esi, 3
sub dword [esp], esi
jmp 0x5765f7
mov ecx, dword [esp]
mov eax, ecx
shr eax, 3
sub ebx, eax
mov dword [esp + 0x30], ebx
and ecx, 7
mov dword [esp], ecx
mov esi, edi
mov eax, dword [ebx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
add eax, 0x682c
mov dword [esp + 0x1c], eax
add edx, 8
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x60]
add eax, 0xffffffe0
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x24]
lea ecx, [eax + 0x10]
mov dword [esp + 0x68], ecx
add eax, 0x38
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov eax, edx
jmp 0x57666b
mov dword [esp], eax
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov edx, ecx
mov ecx, dword [ecx + edi*8 + 4]
mov dword [esp + 4], ecx
movzx ecx, byte [edx + edi*8 + 2]
mov dword [esp + 0xc], ecx
movzx ecx, word [edx + edi*8]
mov dword [esp + 0x94], ecx
movzx ecx, byte [edx + edi*8 + 3]
mov dword [esp + 0x88], ecx
mov ecx, dword [eax + ebp*8 + 4]
mov dword [esp + 0x10], ecx
movzx ecx, byte [eax + ebp*8 + 2]
mov dword [esp + 0x18], ecx
movzx ecx, word [eax + ebp*8]
mov dword [esp + 0x90], ecx
movzx ecx, byte [eax + ebp*8 + 3]
mov dword [esp + 0x8c], ecx
mov ebp, dword [esi + ebx*8 + 4]
movzx edx, byte [esi + ebx*8 + 2]
movzx ecx, word [esi + ebx*8]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esi + ebx*8 + 3]
mov dword [esp + 0x98], ecx
cmp edx, 2
jb 0x576c5e
cmp dword [esp + 0xc0], 0
mov eax, dword [esp]
je 0x576770
cmp dl, 0x19
jb 0x576770
mov ebx, 0x20
sub ebx, eax
cmp ebx, edx
cmova ebx, edx
sub edx, ebx
mov esi, dword [esp + 0x28]
mov edi, esi
mov ecx, eax
shl edi, cl
mov ecx, ebx
neg cl
shr edi, cl
add ebx, eax
mov ecx, edx
shl edi, cl
cmp ebx, 0x20
ja 0x5767e9
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jae 0x5767d5
mov dword [esp], edi
mov edi, dword [esp + 0x34]
mov ecx, eax
sub ecx, edi
je 0x576c10
mov esi, ebx
shr esi, 3
mov dword [esp + 0x7c], ebp
mov ebp, eax
sub ebp, esi
cmp ebp, edi
mov ebp, dword [esp + 0x7c]
cmovb esi, ecx
sub eax, esi
mov dword [esp + 0x30], eax
shl esi, 3
sub ebx, esi
mov edi, dword [esp]
jmp 0x5767e3
mov edi, dword [esp + 0x28]
mov ecx, eax
shl edi, cl
mov ecx, edx
neg cl
shr edi, cl
add eax, edx
add edi, ebp
cmp eax, 0x20
mov ebx, dword [esp + 8]
jbe 0x5767a0
mov ebp, eax
jmp 0x57681f
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x576805
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x57678b
mov ebp, eax
shr eax, 3
mov dword [esp], edi
mov edi, ecx
sub edi, eax
cmp edi, esi
mov edi, dword [esp]
cmovb eax, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
shl eax, 3
sub ebp, eax
jmp 0x576819
mov ecx, ebx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x30], eax
and ebx, 7
mov esi, dword [eax]
mov dword [esp + 0x28], esi
add edi, ebp
test edx, edx
je 0x5767fd
mov ecx, ebx
shl esi, cl
mov ecx, edx
neg cl
shr esi, cl
add ebx, edx
add edi, esi
mov ebp, ebx
mov ebx, dword [esp + 8]
jmp 0x57681f
mov edx, eax
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ecx
and edx, 7
mov ebp, edx
mov dword [esp + 0x2c], edx
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x54]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
lea edx, [esi + eax]
mov eax, dword [ecx]
mov dword [esp + 0x58], eax
mov eax, esi
mov dword [esp + 0x54], edi
test esi, esi
jne 0x576c90
mov eax, ebp
cmp edx, 0x14
mov dword [esp], edi
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 0xc]
jb 0x5768be
cmp eax, 0x20
ja 0x5768be
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x5768a0
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x5768ba
mov ebp, eax
shr eax, 3
mov edi, ecx
sub edi, eax
cmp edi, esi
cmovb eax, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
shl eax, 3
sub ebp, eax
mov edx, ebp
mov ebp, dword [esp + 4]
jmp 0x5768ae
mov edx, eax
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ecx
and edx, 7
mov dword [esp + 0x2c], edx
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov eax, edx
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x576caf
cmp eax, 0x20
mov dword [esp + 4], ebp
ja 0x576916
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x576900
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x576916
mov ebp, eax
shr eax, 3
mov edi, ecx
sub edi, eax
cmp edi, esi
cmovb eax, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
shl eax, 3
sub ebp, eax
mov edx, ebp
jmp 0x57690e
mov edx, eax
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ecx
and edx, 7
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
mov eax, edx
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x88]
add eax, edi
mov ecx, eax
neg cl
mov esi, edx
shr esi, cl
and esi, dword [edi*4 + 0x68b108]
mov edi, dword [esp + 0x8c]
add eax, edi
mov ecx, eax
neg cl
mov ebp, eax
mov eax, edx
shr eax, cl
add esi, dword [esp + 0x94]
and eax, dword [edi*4 + 0x68b108]
mov dword [esp + 0x3c], esi
add eax, dword [esp + 0x90]
mov dword [esp + 0x4c], eax
mov eax, ebp
cmp ebp, 0x20
jbe 0x576980
mov edi, ebx
mov ebp, dword [esp + 4]
mov esi, dword [esp + 0x20]
jmp 0x5769e0
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x5769c0
mov edi, dword [esp + 0x34]
mov esi, ecx
sub esi, edi
je 0x576969
mov eax, ebp
shr eax, 3
mov edx, ecx
sub edx, eax
cmp edx, edi
cmovb eax, esi
sub ecx, eax
mov dword [esp + 0x30], ecx
shl eax, 3
sub ebp, eax
mov eax, ebp
jmp 0x5769d0
mov eax, ebp
shr eax, 3
sub ecx, eax
mov eax, ebp
mov dword [esp + 0x30], ecx
and eax, 7
mov esi, dword [esp + 0x20]
mov edi, ebx
mov edx, dword [ecx]
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 0x98]
add eax, ebx
mov ecx, eax
neg cl
shr edx, cl
and edx, dword [ebx*4 + 0x68b108]
add edx, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x64]
lea eax, [ecx + ebp]
cmp eax, dword [esp + 0x6c]
mov ebx, edi
ja 0x576c22
mov edx, dword [esp + 0x10]
lea edi, [edx + ebp]
lea edx, [ebx + edi]
cmp edx, dword [esp + 0x80]
ja 0x576c22
mov edx, dword [esp + 0x60]
sub edx, ebx
lea esi, [edi + 0x20]
cmp edx, esi
jb 0x576c22
mov dword [esp + 0xc], edi
lea esi, [ebx + ebp]
movups xmm0, xmmword [ecx]
movups xmmword [ebx], xmm0
cmp ebp, 0x11
jae 0x576cd5
mov ebp, esi
mov ecx, dword [esp]
sub ebp, ecx
mov dword [esp + 0x64], eax
mov ebx, esi
mov edx, dword [esp + 0x24]
sub ebx, edx
cmp ebx, ecx
jae 0x576b00
mov eax, esi
sub eax, dword [esp + 0x74]
cmp eax, ecx
jb 0x576fdb
mov dword [esp + 4], ebx
sub ebp, edx
mov edi, dword [esp + 0x70]
lea eax, [edi + ebp]
mov ebx, dword [esp + 0x10]
lea ecx, [eax + ebx]
cmp ecx, edi
jbe 0x576b60
mov ecx, ebp
neg ecx
push ecx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub esi, ebp
mov edi, ebp
add edi, ebx
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 4]
mov edx, dword [esp]
cmp edx, 0x10
jae 0x576b0c
cmp edx, 7
ja 0x576d25
mov al, byte [ebp]
mov byte [esi], al
mov al, byte [ebp + 1]
mov byte [esi + 1], al
mov al, byte [ebp + 2]
mov byte [esi + 2], al
mov al, byte [ebp + 3]
mov byte [esi + 3], al
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [ebp + eax]
add ebp, eax
mov dword [esi + 4], ecx
sub ebp, dword [edx*4 + str._b_b_b_a_b_t_n_v]
cmp edi, 9
jb 0x576b6b
jmp 0x576d37
mov edi, dword [esp + 0x10]
mov edx, dword [esp]
cmp edx, 0x10
jb 0x576abb
movups xmm0, xmmword [ebp]
movups xmmword [esi], xmm0
cmp edi, 0x11
jl 0x576b6b
add edi, esi
mov eax, 0x10
mov ebx, dword [esp + 8]
nop word cs:[eax + eax]
nop dword [eax]
movups xmm0, xmmword [ebp + eax]
movups xmmword [esi + eax], xmm0
movups xmm0, xmmword [ebp + eax + 0x10]
movups xmmword [esi + eax + 0x10], xmm0
lea ecx, [esi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, edi
jb 0x576b30
mov esi, dword [esp + 0x14]
mov eax, 0xffffffec
jmp 0x576b78
push ebx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov esi, dword [esp + 0x14]
mov eax, 0xffffffec
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp edi, 0xffffff88
ja 0x576f9a
add ebx, edi
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x84], 0xffffffff
je 0x576f9e
cmp ecx, 0x20
mov eax, ecx
mov dword [esp + 8], ebx
ja 0x576650
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x576bf0
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x576650
mov ebx, eax
shr eax, 3
mov edi, ecx
sub edi, eax
cmp edi, esi
cmovb eax, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
shl eax, 3
sub ebx, eax
mov dword [esp], ebx
mov dword [esp + 0x2c], ebx
jmp 0x576c05
mov edx, eax
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ecx
and edx, 7
mov dword [esp], edx
mov dword [esp + 0x2c], edx
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
jmp 0x576653
mov edi, dword [esp]
add edi, ebp
test edx, edx
jne 0x5767ef
jmp 0x5767fd
mov ecx, ebx
mov edx, dword [esp + 0x60]
push dword [esp + 0x70]
push dword [esp + 0x78]
push dword [esp + 0x2c]
push dword [esp + 0x78]
lea eax, [esp + 0x74]
push eax
push dword [esp + 0x14]
push dword [esp + 0x28]
push ebp
call fcn.005b5500
add esp, 0x20
mov edi, eax
mov esi, dword [esp + 0x14]
mov eax, 0xffffffec
jmp 0x576b7c
mov edi, ebp
mov ebp, dword [esp]
xor ecx, ecx
mov esi, dword [esp + 4]
test esi, esi
sete cl
test edx, edx
mov ebx, dword [esp + 8]
jne 0x576f4a
xor eax, eax
test esi, esi
setne al
mov edi, dword [esp + ecx*4 + 0x54]
lea ecx, [esp + eax*4]
add ecx, 0x54
jmp 0x57682b
mov esi, dword [esp + 0x28]
mov eax, ebp
mov ecx, eax
shl esi, cl
mov ecx, dword [esp + 0x18]
neg cl
shr esi, cl
add eax, dword [esp + 0x18]
add dword [esp + 0x10], esi
jmp 0x57684c
mov edx, dword [esp + 0x28]
mov esi, ecx
mov ecx, eax
shl edx, cl
mov ecx, esi
neg cl
shr edx, cl
add eax, esi
add ebp, edx
cmp eax, 0x20
mov dword [esp + 4], ebp
jbe 0x5768cf
jmp 0x576916
add ebp, 0xfffffff0
movups xmm0, xmmword [ecx + 0x10]
mov edx, dword [esp + 8]
movups xmmword [edx + 0x10], xmm0
cmp ebp, 0x11
jl 0x576a51
mov edx, dword [esp + 8]
add edx, 0x20
xor edi, edi
nop word cs:[eax + eax]
movups xmm0, xmmword [ecx + edi + 0x20]
movups xmmword [edx + edi], xmm0
movups xmm0, xmmword [ecx + edi + 0x30]
movups xmmword [edx + edi + 0x10], xmm0
lea ebx, [edx + edi]
add ebx, 0x20
add edi, 0x20
cmp ebx, esi
jb 0x576d00
jmp 0x576a51
movsd xmm0, qword [ebp]
movsd qword [esi], xmm0
cmp edi, 9
jb 0x576b6b
mov dword [esp + 4], ebx
lea ecx, [ebp + 8]
lea edx, [esi + 8]
mov eax, edx
sub eax, ecx
lea ebx, [esi + edi]
mov dword [esp + 0x18], ebx
cmp eax, 0xf
jg 0x576da1
mov edi, dword [esp + 0x10]
add edi, dword [esp + 0x24]
mov eax, dword [esp]
mov esi, dword [esp + 4]
cmp eax, esi
mov ebx, esi
cmovb ebx, eax
cmova esi, eax
add ebx, edi
add ebx, esi
sub ebx, eax
mov eax, dword [esp + 0x68]
add eax, esi
cmp ebx, eax
cmovbe ebx, eax
mov eax, dword [esp + 0x24]
add eax, esi
sub ebx, eax
add ebx, 0xfffffff7
mov dword [esp + 0x20], ebx
cmp ebx, 0x18
jae 0x576dfb
mov esi, dword [esp + 0x14]
mov eax, 0xffffffec
mov ebx, dword [esp + 8]
jmp 0x576e6c
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp edi, 0x19
jl 0x576b6b
add esi, 0x18
xor ecx, ecx
mov eax, 0xffffffec
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0xc]
nop word cs:[eax + eax]
nop dword [eax]
movups xmm0, xmmword [ebp + ecx + 0x18]
movups xmmword [esi + ecx], xmm0
movups xmm0, xmmword [ebp + ecx + 0x28]
movups xmmword [esi + ecx + 0x10], xmm0
lea edx, [esi + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, dword [esp + 0x18]
jb 0x576dd0
mov esi, dword [esp + 0x14]
jmp 0x576b7c
mov ebx, dword [esp + 4]
cmp dword [esp], ebx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x10]
cmova eax, dword [esp]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
cmovb ebx, eax
add edi, ebx
mov ebx, dword [esp + 0x10]
add edi, ebx
sub edi, eax
mov eax, dword [esp + 0x68]
add eax, ebx
cmp edi, eax
cmovbe edi, eax
mov eax, dword [esp + 0x24]
add eax, ebx
sub edi, eax
add edi, 0xfffffff7
and edi, 0xfffffff8
lea eax, [edi + ebp]
add eax, 0x10
cmp edx, eax
mov ebx, dword [esp + 8]
jae 0x576e97
mov eax, dword [esp + 0x68]
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
add eax, edi
sub eax, ebx
add eax, dword [esp + 4]
cmp ecx, eax
jae 0x576e97
mov esi, dword [esp + 0x14]
mov eax, 0xffffffec
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 0x18]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, ebp
jb 0x576e80
jmp 0x576b7c
mov eax, dword [esp + 0x20]
shr eax, 3
add eax, 1
mov dword [esp + 0x20], eax
and eax, 0xfffffffc
mov dword [esp + 4], eax
add eax, 0xfffffffc
mov ebx, eax
shr ebx, 2
add ebx, 1
test eax, eax
mov dword [esp], ebx
je 0x576f02
and ebx, 0xfffffffe
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x78]
add eax, edi
sub esi, edi
add esi, eax
xor edi, edi
movups xmm0, xmmword [ebp + edi*8 + 8]
movups xmm1, xmmword [ebp + edi*8 + 0x18]
movups xmmword [esi + edi*8 - 0x30], xmm0
movups xmmword [esi + edi*8 - 0x20], xmm1
movups xmm0, xmmword [ebp + edi*8 + 0x28]
movups xmm1, xmmword [ebp + edi*8 + 0x38]
movups xmmword [esi + edi*8 - 0x10], xmm0
movups xmmword [esi + edi*8], xmm1
add edi, 8
add ebx, 0xfffffffe
jne 0x576ed1
jmp 0x576f04
xor edi, edi
test byte [esp], 1
mov eax, dword [esp + 4]
je 0x576f20
movups xmm0, xmmword [ecx + edi*8]
movups xmm1, xmmword [ecx + edi*8 + 0x10]
movups xmmword [edx + edi*8], xmm0
movups xmmword [edx + edi*8 + 0x10], xmm1
cmp dword [esp + 0x20], eax
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x18]
je 0x576b54
lea edx, [edx + eax*8]
lea ecx, [ecx + eax*8]
mov eax, 0xffffffec
mov edi, dword [esp + 0xc]
jmp 0x576e80
add edi, ecx
mov edx, dword [esp + 0x28]
mov ecx, ebp
shl edx, cl
shr edx, 0x1f
add ecx, 1
mov ebp, ecx
mov dword [esp + 0x2c], ecx
add edx, edi
cmp edx, 3
jne 0x576f76
mov edi, dword [esp + 0x54]
add edi, 0xffffffff
cmp edi, 1
adc edi, 0
jmp 0x576f85
mov edi, dword [esp + edx*4 + 0x54]
cmp edi, 1
adc edi, 0
cmp edx, 1
je 0x576f8d
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x54]
mov ebx, dword [esp + 8]
jmp 0x57682b
mov eax, edi
jmp 0x576fe0
cmp ecx, 0x20
ja 0x576fba
mov edx, ecx
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x576fe0
cmp ecx, dword [esp + 0x34]
jne 0x576fe0
cmp edx, 0x20
jne 0x576fe0
lea edx, [esp + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 8], eax
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov ebp, ebx
mov ebx, dword [esp + 0x64]
jmp 0x5763b2
mov eax, 0xffffffec
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], 0
mov eax, esi
jmp 0x5764cf
mov dword [esp + 4], 0
mov ebp, edx
jmp 0x57657a