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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x9c
mov eax, dword [esp + 0xb0]
add eax, edx
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 0x7570]
mov dword [esp + 0x10], eax
mov dword [esp + 0x70], eax
mov ebx, dword [ecx + 0x75ec]
cmp dword [esp + 0xbc], 0
je 0x573f5c
mov dword [esp + 0x98], edx
mov ebp, dword [esp + 0xb8]
mov edx, dword [ecx + 0x74b0]
mov eax, dword [ecx + 0x74b4]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x74b8]
mov dword [esp + 0x8c], eax
mov dword [ecx + 0x7504], 1
mov eax, dword [ecx + 0x6834]
mov dword [esp + 0x5c], eax
movsd xmm0, qword [ecx + 0x682c]
movsd qword [esp + 0x54], xmm0
test ebp, ebp
je 0x575d35
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x34], esi
lea eax, [esi + 4]
mov dword [esp + 0x38], eax
cmp ebp, 4
jb 0x573fa7
lea eax, [esi + ebp]
add eax, 0xfffffffc
mov dword [esp + 0x30], eax
mov eax, dword [esi + ebp - 4]
mov dword [esp + 0x28], eax
cmp eax, 0x1000000
jb 0x575d35
cmp ebp, 0xffffff88
ja 0x575d35
mov edi, eax
add ebp, 0xfffffffc
shr eax, 0x18
bsr eax, eax
xor eax, 0x1f
add eax, 0xffffffe9
jmp 0x573ff9
mov ebp, edx
cmp dword [ecx + 0x75f0], 2
jne 0x5743ea
sub ebx, dword [esp + 0x10]
mov esi, edx
mov edx, dword [esp + 0x6c]
sub edx, ebp
mov eax, 0xffffffba
cmp ebx, edx
ja 0x575d41
test ebp, ebp
je 0x5743ca
push ebx
push dword [esp + 0x14]
push ebp
mov edi, ecx
call sub.msvcrt.dll_memmove
mov ecx, edi
mov edx, esi
add esp, 0xc
add ebp, ebx
jmp 0x5743ce
mov dword [esp + 0x30], esi
movzx eax, byte [esi]
mov edi, eax
mov dword [esp + 0x28], eax
cmp ebp, 2
je 0x573fcb
cmp ebp, 3
jne 0x573fdc
movzx eax, byte [esi + 2]
shl eax, 0x10
mov edx, edi
or edx, eax
jmp 0x573fcd
mov edx, edi
movzx eax, byte [esi + 1]
shl eax, 8
add edx, eax
mov edi, edx
mov dword [esp + 0x28], edx
movzx eax, byte [ebp + esi - 1]
test eax, eax
je 0x575d35
bsr eax, eax
xor eax, 0x1f
shl ebp, 3
sub eax, ebp
add eax, 9
xor ebp, ebp
mov dword [esp + 0x60], ecx
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov esi, dword [ecx + 4]
add eax, esi
mov ecx, eax
neg cl
mov edx, edi
shr edx, cl
and edx, dword [esi*4 + 0x68b108]
mov dword [esp + 0x3c], edx
cmp eax, 0x20
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], edx
jbe 0x57403e
mov dword [esp], ebp
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x60]
mov edx, edi
jmp 0x5740b7
cmp ebp, 4
jge 0x574082
test ebp, ebp
mov ecx, dword [esp + 0xb4]
je 0x57454b
add ecx, ebp
mov esi, eax
shr esi, 3
sub ecx, esi
cmp ecx, dword [esp + 0xb4]
cmovb esi, ebp
sub ebp, esi
mov ecx, dword [esp + 0xb4]
add ecx, ebp
mov dword [esp + 0x30], ecx
shl esi, 3
sub eax, esi
mov edx, dword [esp + 0xb4]
jmp 0x57409a
mov ecx, eax
shr ecx, 3
sub ebp, ecx
mov edx, dword [esp + 0xb4]
lea ecx, [edx + ebp]
mov dword [esp + 0x30], ecx
and eax, 7
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x2c], eax
mov dword [esp], ebp
mov edx, dword [edx + ebp]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 8]
add edi, 8
mov dword [esp + 0x40], edi
mov ebp, dword [ecx + 8]
mov esi, dword [ebp + 4]
add eax, esi
mov ecx, eax
neg cl
mov ebx, edx
shr ebx, cl
and ebx, dword [esi*4 + 0x68b108]
mov dword [esp + 0x44], ebx
cmp eax, 0x20
mov dword [esp + 8], edi
mov dword [esp + 0x68], ebx
ja 0x574155
mov esi, edx
mov edx, dword [esp]
cmp edx, 4
jge 0x574133
test edx, edx
mov ecx, dword [esp + 0xb4]
je 0x574562
add ecx, edx
mov esi, eax
shr esi, 3
sub ecx, esi
cmp ecx, dword [esp + 0xb4]
cmovb esi, edx
sub edx, esi
mov ecx, dword [esp + 0xb4]
add ecx, edx
mov dword [esp + 0x30], ecx
shl esi, 3
sub eax, esi
mov esi, dword [esp + 0xb4]
jmp 0x57414b
mov ecx, eax
shr ecx, 3
sub edx, ecx
mov esi, dword [esp + 0xb4]
lea ecx, [esi + edx]
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp], edx
mov edx, dword [esi + edx]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x60]
add ebp, 8
mov dword [esp + 0x48], ebp
mov edi, dword [ecx + 4]
mov ebx, dword [edi + 4]
add eax, ebx
mov ecx, eax
neg cl
mov esi, edx
shr esi, cl
and esi, dword [ebx*4 + 0x68b108]
mov dword [esp + 0x4c], esi
cmp eax, 0x20
mov dword [esp + 0x84], ebp
jbe 0x57418d
mov dword [esp + 0x64], eax
jmp 0x5741ec
mov ecx, edx
mov edx, dword [esp]
cmp edx, 4
jge 0x5741c5
test edx, edx
je 0x574574
mov ebp, dword [esp + 0xb4]
lea ecx, [edx + ebp]
mov ebx, eax
shr ebx, 3
sub ecx, ebx
cmp ecx, ebp
cmovb ebx, edx
sub edx, ebx
lea ecx, [edx + ebp]
mov dword [esp + 0x30], ecx
shl ebx, 3
sub eax, ebx
jmp 0x5741dd
mov ecx, eax
shr ecx, 3
sub edx, ecx
mov ebp, dword [esp + 0xb4]
lea ecx, [edx + ebp]
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp + 0x64], eax
mov dword [esp], edx
mov edx, dword [ebp + edx]
mov dword [esp + 0x28], edx
lea ecx, [edi + 8]
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebx + ebp*8 + 4]
mov dword [esp + 4], ecx
movzx ecx, byte [ebx + ebp*8 + 2]
mov dword [esp + 0x18], ecx
movzx ecx, word [ebx + ebp*8]
mov dword [esp + 0x80], ecx
movzx ecx, byte [ebx + ebp*8 + 3]
mov dword [esp + 0x20], ecx
mov ebx, dword [edi + esi*8 + 0xc]
movzx ecx, byte [edi + esi*8 + 0xa]
mov dword [esp + 0x7c], ecx
movzx ecx, word [edi + esi*8 + 8]
mov dword [esp + 0x94], ecx
movzx ecx, byte [edi + esi*8 + 0xb]
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x68]
mov ebp, dword [esi + edi*8 + 4]
movzx eax, byte [esi + edi*8 + 2]
movzx ecx, word [esi + edi*8]
mov dword [esp + 0x88], ecx
movzx ecx, byte [esi + edi*8 + 3]
mov dword [esp + 0x84], ecx
mov esi, eax
cmp eax, 2
mov dword [esp + 0xc], edx
jb 0x57459d
mov edi, dword [esp]
mov ecx, dword [esp + 0xb4]
lea eax, [ecx + edi]
mov dword [esp + 0x68], eax
cmp dword [esp + 0xc0], 0
mov eax, esi
je 0x574306
cmp al, 0x19
jb 0x574306
mov dword [esp + 8], ebp
mov esi, edi
mov edi, edx
mov dword [esp + 0x14], ebx
mov ebx, 0x20
mov edx, dword [esp + 0x64]
sub ebx, edx
cmp ebx, eax
cmova ebx, eax
sub eax, ebx
mov ecx, edx
shl edi, cl
mov ecx, ebx
neg cl
shr edi, cl
add ebx, edx
mov ecx, eax
shl edi, cl
cmp ebx, 0x20
mov edx, eax
jbe 0x574335
mov ebp, dword [esp + 0x20]
add edi, dword [esp + 8]
test edx, edx
mov dword [esp], esi
je 0x5742f3
mov eax, dword [esp + 0xc]
mov ecx, ebx
shl eax, cl
mov ecx, edx
neg cl
shr eax, cl
add ebx, edx
add edi, eax
mov dword [esp + 8], edi
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp 0x574495
mov esi, dword [esp + 0x64]
mov ecx, esi
shl edx, cl
mov ecx, eax
neg cl
shr edx, cl
mov ecx, esi
add ecx, eax
mov eax, ecx
add edx, ebp
mov dword [esp + 8], edx
cmp ecx, 0x20
jbe 0x574377
mov dword [esp], edi
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
jmp 0x574495
mov ebp, esi
cmp esi, 4
jge 0x574426
test ebp, ebp
je 0x57458a
mov dword [esp + 0x64], edx
mov eax, ebx
shr eax, 3
mov edx, dword [esp + 0x68]
sub edx, eax
mov ecx, dword [esp + 0xb4]
cmp edx, ecx
mov edx, ecx
cmovb eax, ebp
sub ebp, eax
add ecx, ebp
mov dword [esp + 0x30], ecx
shl eax, 3
sub ebx, eax
jmp 0x574442
cmp edi, 4
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
jge 0x57446b
test edi, edi
je 0x574591
mov ecx, eax
shr ecx, 3
mov esi, dword [esp + 0x68]
sub esi, ecx
mov ebp, edi
mov edi, dword [esp + 0xb4]
cmp esi, edi
cmovb ecx, ebp
sub ebp, ecx
mov dword [esp], ebp
lea esi, [edi + ebp]
mov dword [esp + 0x30], esi
shl ecx, 3
sub eax, ecx
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + ebp]
mov ebp, dword [esp + 0x20]
jmp 0x57448d
mov edx, esi
xor ebp, ebp
lea eax, [ecx + 0x75f4]
mov dword [esp + 0x10], eax
mov dword [ecx + 0x75f0], 0
add ecx, 0x175f4
mov ebx, ecx
sub ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
sub ecx, ebp
mov eax, 0xffffffba
cmp ebx, ecx
ja 0x575d41
test ebp, ebp
je 0x57441d
push ebx
push dword [esp + 0x14]
push ebp
mov esi, edx
call sub.msvcrt.dll_memcpy
mov edx, esi
add esp, 0xc
add ebp, ebx
mov eax, ebp
jmp 0x57441f
xor eax, eax
sub eax, edx
jmp 0x575d41
mov dword [esp + 0x64], edx
mov eax, ebx
shr eax, 3
sub ebp, eax
mov edx, dword [esp + 0xb4]
lea eax, [edx + ebp]
mov dword [esp + 0x30], eax
and ebx, 7
mov esi, ebp
mov eax, dword [edx + ebp]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x64]
add edi, dword [esp + 8]
test edx, edx
mov dword [esp], esi
jne 0x5742e1
jmp 0x5742f3
mov ecx, eax
shr ecx, 3
sub edi, ecx
mov esi, dword [esp + 0xb4]
lea ecx, [esi + edi]
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp + 0x2c], eax
mov dword [esp], edi
mov ecx, dword [esi + edi]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], ecx
mov edi, ebp
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x7c]
lea esi, [ecx + ebp]
mov ecx, dword [esp + 8]
mov dword [esp + 0x54], ecx
test ebp, ebp
jne 0x5745dc
mov ebp, edi
mov edi, dword [esp]
cmp esi, 0x14
mov ecx, dword [esp + 0x18]
jb 0x574602
cmp eax, 0x20
mov esi, dword [esp + 0xb4]
ja 0x574609
cmp edi, 4
jge 0x574522
test edi, edi
je 0x574586
lea ecx, [esi + edi]
mov esi, eax
shr esi, 3
sub ecx, esi
cmp ecx, dword [esp + 0xb4]
cmovb esi, edi
sub edi, esi
mov ecx, dword [esp + 0xb4]
add ecx, edi
mov dword [esp + 0x30], ecx
shl esi, 3
sub eax, esi
mov esi, dword [esp + 0xb4]
jmp 0x574533
mov ecx, eax
shr ecx, 3
sub edi, ecx
lea ecx, [esi + edi]
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + edi]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
jmp 0x574609
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x74], ecx
mov dword [esp], 0
jmp 0x574036
mov dword [esp], 0
mov ecx, dword [esp + 0x60]
mov edx, esi
jmp 0x574159
mov dword [esp + 0x64], eax
mov dword [esp], 0
mov edx, ecx
jmp 0x5741ec
xor edi, edi
jmp 0x574609
xor esi, esi
jmp 0x5742d2
mov dword [esp], 0
jmp 0x574495
mov edi, ebx
xor ebx, ebx
mov edx, dword [esp + 4]
test edx, edx
sete bl
test esi, esi
jne 0x57622a
xor ecx, ecx
test edx, edx
setne cl
mov edx, dword [esp + ebx*4 + 0x54]
mov dword [esp + 8], edx
mov ecx, dword [esp + ecx*4 + 0x54]
mov dword [esp + 0x58], ecx
mov ebx, edi
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x64]
jmp 0x5744a7
mov edi, dword [esp + 0xc]
mov ecx, eax
shl edi, cl
mov ecx, ebp
neg cl
shr edi, cl
add eax, ebp
add ebx, edi
mov edi, dword [esp]
mov ebp, dword [esp + 0x20]
cmp esi, 0x14
mov ecx, dword [esp + 0x18]
jae 0x5744d4
mov esi, dword [esp + 0xb4]
test ecx, ecx
jne 0x57461b
cmp eax, 0x20
jbe 0x57463f
mov dword [esp], edi
mov edi, dword [esp + 0xc]
jmp 0x574698
mov esi, dword [esp + 0xc]
mov ecx, eax
shl esi, cl
mov ecx, dword [esp + 0x18]
neg cl
shr esi, cl
add eax, dword [esp + 0x18]
add dword [esp + 4], esi
mov esi, dword [esp + 0xb4]
cmp eax, 0x20
ja 0x574612
cmp edi, 4
jge 0x57467d
test edi, edi
je 0x5751b3
lea ecx, [esi + edi]
mov esi, eax
shr esi, 3
sub ecx, esi
cmp ecx, dword [esp + 0xb4]
cmovb esi, edi
sub edi, esi
mov ecx, dword [esp + 0xb4]
add ecx, edi
mov dword [esp + 0x30], ecx
shl esi, 3
sub eax, esi
mov esi, dword [esp + 0xb4]
jmp 0x57468e
mov ecx, eax
shr ecx, 3
sub edi, ecx
lea ecx, [esi + edi]
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp], edi
mov edi, dword [esi + edi]
mov dword [esp + 0x28], edi
add eax, ebp
mov ecx, eax
neg cl
mov esi, edi
shr esi, cl
and esi, dword [ebp*4 + 0x68b108]
mov ebp, dword [esp + 0x24]
add eax, ebp
mov ecx, eax
neg cl
mov dword [esp + 0xc], edi
shr edi, cl
add esi, dword [esp + 0x80]
and edi, dword [ebp*4 + 0x68b108]
mov dword [esp + 0x3c], esi
add edi, dword [esp + 0x94]
mov dword [esp + 0x4c], edi
cmp eax, 0x20
jbe 0x5746e5
mov edi, dword [esp + 4]
mov esi, dword [esp + 0xc]
jmp 0x57473a
mov ecx, dword [esp + 0xb4]
mov ebp, dword [esp]
add ecx, ebp
cmp ebp, 4
mov edi, dword [esp + 4]
jge 0x574726
test ebp, ebp
je 0x5751c3
mov esi, eax
shr esi, 3
mov edi, ecx
sub edi, esi
cmp edi, dword [esp + 0xb4]
mov edi, dword [esp + 4]
cmovb esi, ebp
sub ecx, esi
mov dword [esp + 0x30], ecx
shl esi, 3
sub eax, esi
jmp 0x574734
mov esi, eax
shr esi, 3
sub ecx, esi
mov dword [esp + 0x30], ecx
and eax, 7
mov esi, dword [ecx]
mov dword [esp + 0x28], esi
mov ebp, dword [esp + 0x84]
add eax, ebp
mov ecx, eax
neg cl
shr esi, cl
and esi, dword [ebp*4 + 0x68b108]
add esi, dword [esp + 0x88]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], esi
lea eax, [edx + edi]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jbe 0x574833
mov ebp, dword [esp + 0x98]
cmp dword [esp + 0x74], 0
jle 0x575d35
mov esi, ecx
sub esi, edx
je 0x575148
mov eax, dword [esp + 0x6c]
sub eax, ebp
mov dword [esp + 4], 0xffffffba
cmp esi, eax
ja 0x575d3d
mov dword [esp + 4], edi
lea eax, [esi + ebp]
mov dword [esp + 0xc], eax
cmp esi, 8
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], esi
jl 0x575155
mov eax, ebp
sub eax, edx
cmp eax, 0xfffffff9
jge 0x575155
mov dword [esp + 0x10], edx
cmp eax, 0xffffffef
ja 0x5751cc
mov eax, dword [esp + 0xc]
lea esi, [eax - 0x20]
mov edi, esi
mov ebx, ebp
mov edx, ebp
mov ebp, dword [esp + 0x10]
mov eax, edx
sub edi, edx
jb 0x5751d6
mov ebp, dword [esp + 0x10]
movups xmm0, xmmword [ebp]
movups xmmword [edx], xmm0
cmp edi, 0x11
jl 0x574826
mov eax, 0x10
movups xmm0, xmmword [ebp + eax]
movups xmmword [edx + eax], xmm0
movups xmm0, xmmword [ebp + eax + 0x10]
movups xmmword [edx + eax + 0x10], xmm0
lea ebx, [edx + eax]
add ebx, 0x20
add eax, 0x20
cmp ebx, esi
jb 0x574806
add edi, ebp
mov ebx, esi
mov ebp, edi
mov eax, esi
jmp 0x5751d6
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + 0x10]
mov dword [esp + 0x7c], esi
add ecx, 0x38
mov dword [esp + 0x68], ecx
mov ebp, dword [esp + 0x98]
jmp 0x574894
mov edx, dword [esp + 0x10]
mov ebp, edi
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
add ebx, esi
mov ecx, ebx
neg cl
shr eax, cl
and eax, dword [esi*4 + 0x68b108]
add eax, edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x70]
lea eax, [edx + edi]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 0x75ec]
cmp eax, ecx
mov ebx, dword [esp + 0x14]
ja 0x574775
lea ecx, [eax - 0x20]
mov dword [esp + 4], ecx
cmp eax, dword [esp + 0x78]
mov esi, ebp
ja 0x574ccd
lea ebp, [edi + ebx]
lea ecx, [esi + ebp]
cmp ecx, dword [esp + 4]
ja 0x574ccd
mov ecx, dword [esp + 0x6c]
sub ecx, esi
mov dword [esp + 0xc], eax
mov eax, esi
mov esi, ebx
mov ebx, edx
mov edx, edi
lea edi, [ebp + 0x20]
cmp ecx, edi
mov edi, edx
mov edx, ebx
mov ebx, esi
mov esi, eax
mov eax, dword [esp + 0xc]
jb 0x574ccd
mov dword [esp + 4], ebp
lea ebp, [esi + edi]
movups xmm0, xmmword [edx]
mov dword [esp], esi
movups xmmword [esi], xmm0
cmp edi, 0x11
jae 0x574e9a
mov esi, ebp
mov edx, dword [esp + 8]
sub esi, edx
mov dword [esp + 0x70], eax
mov edi, ebp
sub edi, dword [esp + 0x1c]
cmp edi, edx
jae 0x574960
mov eax, ebp
sub eax, dword [esp + 0x90]
cmp eax, edx
jb 0x575d35
sub esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x8c]
lea eax, [edx + esi]
lea ecx, [eax + ebx]
cmp ecx, edx
jbe 0x5749b0
mov ecx, esi
neg ecx
push ecx
push eax
push ebp
call sub.msvcrt.dll_memmove
add esp, 0xc
sub ebp, esi
mov eax, ebx
mov ebx, esi
mov ecx, eax
add ebx, eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 8]
jmp 0x574962
mov ecx, ebx
cmp edx, 0x10
jb 0x574ede
movups xmm0, xmmword [esi]
movups xmmword [ebp], xmm0
cmp ebx, 0x11
jl 0x5749bb
add ebx, ebp
mov eax, 0x10
nop
movups xmm0, xmmword [esi + eax]
movups xmmword [ebp + eax], xmm0
movups xmm0, xmmword [esi + eax + 0x10]
movups xmmword [ebp + eax + 0x10], xmm0
lea ecx, [eax + ebp]
add ecx, 0x20
add eax, 0x20
cmp ecx, ebx
jb 0x574980
jmp 0x5749bb
push ebx
push eax
push ebp
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebp, dword [esp]
mov eax, dword [esp + 4]
cmp eax, 0xffffff88
ja 0x575d3d
add ebp, eax
add dword [esp + 0x74], 0xffffffff
je 0x575ccc
mov ebx, dword [esp + 0x2c]
cmp ebx, 0x20
mov dword [esp], ebp
ja 0x574a34
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jae 0x574a20
mov edx, dword [esp + 0x34]
mov ecx, eax
sub ecx, edx
je 0x574a34
mov esi, ebx
shr esi, 3
mov edi, eax
sub edi, esi
cmp edi, edx
cmovb esi, ecx
sub eax, esi
mov dword [esp + 0x30], eax
shl esi, 3
sub ebx, esi
jmp 0x574a2e
mov ecx, ebx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x30], eax
and ebx, 7
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov edi, dword [edx + eax*8 + 4]
movzx ebp, byte [edx + eax*8 + 2]
mov dword [esp + 0xc], ebp
movzx ebp, word [edx + eax*8]
mov dword [esp + 0x20], ebp
movzx eax, byte [edx + eax*8 + 3]
mov dword [esp + 0x80], eax
mov eax, dword [ecx + esi*8 + 4]
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + esi*8 + 2]
mov dword [esp + 0x94], eax
movzx eax, word [ecx + esi*8]
mov dword [esp + 0x88], eax
movzx eax, byte [ecx + esi*8 + 3]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov ebp, dword [eax + ecx*8 + 4]
movzx edx, byte [eax + ecx*8 + 2]
movzx esi, word [eax + ecx*8]
mov dword [esp + 0x10], esi
movzx eax, byte [eax + ecx*8 + 3]
mov dword [esp + 0x18], eax
cmp edx, 2
jb 0x574d11
mov dword [esp + 0x24], ebp
cmp dword [esp + 0xc0], 0
mov ebp, dword [esp]
je 0x574b50
cmp dl, 0x19
jb 0x574b50
mov dword [esp + 4], edi
mov eax, 0x20
sub eax, ebx
cmp eax, edx
cmova eax, edx
sub edx, eax
mov esi, dword [esp + 0x28]
mov edi, esi
mov ecx, ebx
shl edi, cl
mov ecx, eax
neg cl
shr edi, cl
add eax, ebx
mov ecx, edx
shl edi, cl
mov dword [esp + 8], edi
cmp eax, 0x20
ja 0x574bc8
mov ebx, dword [esp + 0x30]
cmp ebx, dword [esp + 0x38]
jae 0x574bb4
mov ecx, dword [esp + 0x34]
mov ebp, ebx
sub ebp, ecx
je 0x574cb5
mov edi, eax
shr edi, 3
mov esi, ecx
mov ecx, ebx
sub ecx, edi
cmp ecx, esi
cmovb edi, ebp
sub ebx, edi
mov dword [esp + 0x30], ebx
shl edi, 3
sub eax, edi
mov ebp, dword [esp]
jmp 0x574bc2
mov eax, dword [esp + 0x28]
mov ecx, ebx
shl eax, cl
mov ecx, edx
neg cl
shr eax, cl
add ebx, edx
mov edx, eax
add edx, dword [esp + 0x24]
cmp ebx, 0x20
ja 0x574bea
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jae 0x574c98
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov ecx, eax
sub ecx, edx
je 0x574bae
mov esi, ebx
shr esi, 3
mov dword [esp + 4], edi
mov edi, eax
sub edi, esi
cmp edi, edx
mov edi, dword [esp + 4]
cmovb esi, ecx
sub eax, esi
mov dword [esp + 0x30], eax
shl esi, 3
sub ebx, esi
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 8]
jmp 0x574bea
mov edi, eax
shr edi, 3
sub ebx, edi
mov dword [esp + 0x30], ebx
and eax, 7
mov esi, dword [ebx]
mov dword [esp + 0x28], esi
mov edi, dword [esp + 8]
add edi, dword [esp + 0x24]
test edx, edx
je 0x574be2
mov ecx, eax
shl esi, cl
mov ecx, edx
neg cl
shr esi, cl
add eax, edx
add edi, esi
mov ebx, eax
mov edx, edi
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x54]
mov dword [esp + 8], edx
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x94]
add eax, esi
mov ecx, dword [ecx]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], edx
test esi, esi
jne 0x574d39
cmp eax, 0x14
jb 0x574c78
cmp ebx, 0x20
ja 0x574c78
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jae 0x574c60
mov edx, dword [esp + 0x34]
mov ecx, eax
sub ecx, edx
je 0x574c78
mov esi, ebx
shr esi, 3
mov ebp, edi
mov edi, eax
sub edi, esi
cmp edi, edx
mov edi, ebp
mov ebp, dword [esp]
cmovb esi, ecx
sub eax, esi
mov dword [esp + 0x30], eax
shl esi, 3
sub ebx, esi
jmp 0x574c6e
mov ecx, ebx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x30], eax
and ebx, 7
mov dword [esp + 0x2c], ebx
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x574d5d
cmp ebx, 0x20
mov dword [esp + 4], edi
jbe 0x574d80
mov edi, ebp
jmp 0x574dd6
mov ecx, ebx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x30], eax
and ebx, 7
mov dword [esp + 0x2c], ebx
mov eax, dword [eax]
mov dword [esp + 0x28], eax
jmp 0x574bea
mov ebp, dword [esp]
mov edi, dword [esp + 8]
add edi, dword [esp + 0x24]
test edx, edx
jne 0x574bd4
jmp 0x574be2
mov ecx, esi
mov edx, dword [esp + 0x6c]
push dword [esp + 0x8c]
push dword [esp + 0x94]
push dword [esp + 0x24]
push dword [esp + 0x84]
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x1c]
push ebx
push edi
push dword [esp + 0x24]
call fcn.005b6020
add esp, 0x24
mov dword [esp + 4], eax
mov ebp, esi
jmp 0x5749be
xor eax, eax
test edi, edi
sete al
test edx, edx
jne 0x5750fe
xor ecx, ecx
test edi, edi
setne cl
mov edx, dword [esp + eax*4 + 0x54]
lea ecx, [esp + ecx*4]
add ecx, 0x54
mov ebp, dword [esp]
jmp 0x574bf6
mov ecx, esi
mov edx, dword [esp + 0x28]
mov ecx, ebx
shl edx, cl
mov ecx, esi
neg cl
shr edx, cl
add ebx, esi
add dword [esp + 0x14], edx
cmp eax, 0x14
jae 0x574c1e
jmp 0x574c78
mov eax, dword [esp + 0x28]
mov ecx, ebx
shl eax, cl
mov ecx, edx
neg cl
shr eax, cl
add ebx, edx
add edi, eax
cmp ebx, 0x20
mov dword [esp + 4], edi
ja 0x574c91
nop dword [eax]
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jae 0x574dc0
mov edx, dword [esp + 0x34]
mov ecx, eax
sub ecx, edx
je 0x574c91
mov esi, ebx
shr esi, 3
mov edi, eax
sub edi, esi
cmp edi, edx
mov edi, dword [esp]
cmovb esi, ecx
sub eax, esi
mov dword [esp + 0x30], eax
shl esi, 3
sub ebx, esi
jmp 0x574dd0
mov edi, ebp
mov ecx, ebx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x30], eax
and ebx, 7
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x80]
add ebx, esi
mov ecx, ebx
neg cl
mov edx, eax
shr edx, cl
and edx, dword [esi*4 + 0x68b108]
mov ebp, dword [esp + 0x84]
add ebx, ebp
mov ecx, ebx
neg cl
mov esi, eax
shr esi, cl
add edx, dword [esp + 0x20]
and esi, dword [ebp*4 + 0x68b108]
mov dword [esp + 0x3c], edx
add esi, dword [esp + 0x88]
mov dword [esp + 0x4c], esi
cmp ebx, 0x20
ja 0x574850
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
mov ebp, edi
jae 0x574e70
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
mov edi, dword [esp + 4]
je 0x574e91
mov eax, ebx
shr eax, 3
mov ebp, edi
mov edi, ecx
sub edi, eax
cmp edi, esi
mov edi, ebp
mov ebp, dword [esp]
cmovb eax, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
shl eax, 3
sub ebx, eax
mov edx, dword [esp + 0x10]
jmp 0x574e86
mov eax, ebx
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ecx
and ebx, 7
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
jmp 0x57485a
mov edx, dword [esp + 0x10]
jmp 0x57485a
add edi, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
mov ecx, dword [esp]
movups xmmword [ecx + 0x10], xmm0
cmp edi, 0x11
jl 0x5748f9
mov ecx, dword [esp]
add ecx, 0x20
xor esi, esi
movups xmm0, xmmword [edx + esi + 0x20]
movups xmmword [ecx + esi], xmm0
movups xmm0, xmmword [edx + esi + 0x30]
movups xmmword [ecx + esi + 0x10], xmm0
lea edi, [ecx + esi]
add edi, 0x20
add esi, 0x20
cmp edi, ebp
jb 0x574eb9
jmp 0x5748f9
cmp edx, 7
ja 0x574f16
mov al, byte [esi]
mov byte [ebp], al
mov al, byte [esi + 1]
mov byte [ebp + 1], al
mov al, byte [esi + 2]
mov byte [ebp + 2], al
mov al, byte [esi + 3]
mov byte [ebp + 3], al
mov eax, dword [edx*4 + 0x68b1a8]
mov edx, dword [esi + eax]
add esi, eax
mov dword [ebp + 4], edx
mov eax, dword [esp + 8]
sub esi, dword [eax*4 + str._b_b_b_a_b_t_n_v]
jmp 0x574f1f
movsd xmm0, qword [esi]
movsd qword [ebp], xmm0
cmp ebx, 9
jb 0x5749bb
lea eax, [esi + 8]
mov dword [esp + 0xc], eax
lea edx, [ebp + 8]
mov eax, edx
sub eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
lea eax, [ebx + ebp]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x14], 0xf
jg 0x574f99
mov ebp, ecx
add ebp, dword [esp + 0x1c]
mov eax, dword [esp + 8]
cmp eax, edi
mov ebx, edi
cmovb ebx, eax
mov ecx, edi
cmova ecx, eax
mov dword [esp + 0x14], ebp
add ebx, ebp
add ebx, ecx
mov dword [esp + 8], eax
sub ebx, eax
mov eax, dword [esp + 0x7c]
add eax, ecx
cmp ebx, eax
cmovbe ebx, eax
mov eax, dword [esp + 0x1c]
add eax, ecx
sub ebx, eax
add ebx, 0xfffffff7
mov dword [esp + 0x18], ebx
cmp ebx, 0x18
jae 0x574fdb
mov ebp, dword [esp]
mov edi, dword [esp + 0xc]
jmp 0x5750e3
mov eax, dword [esp + 0xc]
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
cmp ebx, 0x19
jl 0x5749bb
add ebp, 0x18
xor ecx, ecx
mov edx, dword [esp + 0x10]
movups xmm0, xmmword [esi + ecx + 0x18]
movups xmmword [ebp + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x28]
movups xmmword [ebp + ecx + 0x10], xmm0
lea eax, [ecx + ebp]
add eax, 0x20
add ecx, 0x20
cmp eax, edx
jb 0x574fb5
jmp 0x5749bb
mov eax, dword [esp + 8]
cmp eax, edi
mov ebp, edi
cmova ebp, eax
cmovb edi, eax
mov ebx, dword [esp + 0x14]
add ebx, edi
add ebx, ebp
sub ebx, eax
mov edi, dword [esp + 0x7c]
lea eax, [edi + ebp]
cmp ebx, eax
cmovbe ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], ebp
add eax, ebp
sub ebx, eax
add ebx, 0xfffffff7
and ebx, 0xfffffff8
lea eax, [esi + ebx]
add eax, 0x10
cmp edx, eax
mov ebp, dword [esp]
mov eax, edi
mov edi, dword [esp + 0xc]
jae 0x57503e
add eax, ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
add eax, ebx
sub eax, ebp
add eax, dword [esp + 0x14]
cmp edi, eax
jb 0x5750e3
mov eax, dword [esp + 0x18]
shr eax, 3
add eax, 1
mov dword [esp + 0x18], eax
and eax, 0xfffffffc
mov dword [esp + 8], eax
add eax, 0xfffffffc
mov ebx, eax
shr ebx, 2
add ebx, 1
test eax, eax
je 0x5750a7
mov ebp, ebx
and ebp, 0xfffffffe
mov edi, dword [esp]
mov eax, dword [esp + 0x68]
add eax, edi
sub ecx, edi
add ecx, eax
xor edi, edi
movups xmm0, xmmword [esi + edi*8 + 8]
movups xmm1, xmmword [esi + edi*8 + 0x18]
movups xmmword [ecx + edi*8 - 0x30], xmm0
movups xmmword [ecx + edi*8 - 0x20], xmm1
movups xmm0, xmmword [esi + edi*8 + 0x28]
movups xmm1, xmmword [esi + edi*8 + 0x38]
movups xmmword [ecx + edi*8 - 0x10], xmm0
movups xmmword [ecx + edi*8], xmm1
add edi, 8
add ebp, 0xfffffffe
jne 0x575076
jmp 0x5750a9
xor edi, edi
test bl, 1
je 0x5750c4
mov eax, dword [esp + 0xc]
movups xmm0, xmmword [eax + edi*8]
movups xmm1, xmmword [eax + edi*8 + 0x10]
movups xmmword [edx + edi*8], xmm0
movups xmmword [edx + edi*8 + 0x10], xmm1
mov eax, dword [esp + 8]
cmp dword [esp + 0x18], eax
je 0x5749bb
mov ebx, dword [esp + 8]
lea edx, [edx + ebx*8]
mov edi, dword [esp + 0xc]
lea edi, [edi + ebx*8]
mov ebp, dword [esp]
mov eax, dword [esp + 0x10]
movsd xmm0, qword [edi]
movsd qword [edx], xmm0
add edx, 8
add edi, 8
cmp edx, eax
jb 0x5750e7
jmp 0x5749be
mov edx, ebp
mov ebp, dword [esp]
add edx, eax
mov eax, dword [esp + 0x28]
mov ecx, ebx
shl eax, cl
shr eax, 0x1f
add ebx, 1
mov dword [esp + 0x2c], ebx
add eax, edx
cmp eax, 3
jne 0x575130
mov edx, dword [esp + 0x54]
add edx, 0xffffffff
cmp edx, 1
adc edx, 0
jmp 0x574bea
mov edx, dword [esp + eax*4 + 0x54]
cmp edx, 1
adc edx, 0
cmp eax, 1
jne 0x574bea
jmp 0x574bf2
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ebp
jmp 0x575227
test esi, esi
jle 0x57521f
add ecx, ebp
sub ecx, edx
lea edi, [ebp + 1]
cmp ecx, edi
mov ebx, edi
cmova ebx, ecx
sub ebx, ebp
cmp ebx, 8
jb 0x57518f
cmp ecx, edi
mov eax, edi
cmova eax, ecx
mov esi, eax
sub esi, ebp
add esi, edx
cmp ebp, esi
jae 0x575e4b
cmp edx, eax
jae 0x575e4b
mov ecx, ebp
mov esi, edx
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [esi]
add esi, 1
mov byte [ecx], al
add ecx, 1
cmp ecx, dword [esp + 0xc]
jb 0x5751a0
jmp 0x57521f
mov dword [esp], 0
mov edi, dword [esp + 0xc]
jmp 0x574698
mov esi, dword [esp + 0xc]
jmp 0x57473a
mov ebx, ebp
mov edx, ebp
mov ebp, dword [esp + 0x10]
mov eax, edx
mov esi, dword [esp + 0x18]
lea edi, [edx + esi]
sub edi, eax
lea esi, [ebx + edi]
mov dword [esp + 0x20], edi
cmp edi, 8
jb 0x575205
add edx, ecx
add eax, dword [esp + 0x10]
sub edx, eax
add edx, ebp
cmp ebx, edx
jae 0x575d52
cmp ebp, esi
jae 0x575d52
mov edx, ebx
mov edi, ebp
nop dword [eax]
movzx eax, byte [edi]
add edi, 1
mov byte [edx], al
add edx, 1
cmp edx, esi
jne 0x575210
mov edi, dword [esp + 4]
sub edi, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
lea esi, [eax + 0x75f4]
mov dword [esp + 0x70], esi
lea edx, [eax + 0x175f4]
mov dword [esp + 0x78], edx
mov dword [eax + 0x75f0], 0
mov eax, dword [esp + 0x6c]
add eax, 0xffffffe0
mov dword [esp + 0x7c], eax
cmp edi, 0x10000
mov ecx, dword [esp + 0xc]
jg 0x575f7c
mov eax, dword [esp + 0x14]
lea ebx, [edi + eax]
lea eax, [ecx + ebx]
cmp eax, dword [esp + 0x7c]
ja 0x575f7c
mov eax, dword [esp + 0x6c]
sub eax, ecx
lea edx, [ebx + 0x20]
cmp eax, edx
jb 0x575f7c
mov dword [esp + 4], ebx
mov edx, edi
add edi, ecx
mov eax, dword [esp + 0x60]
add eax, edx
add eax, 0x75f4
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp edx, 0x11
jae 0x575fc5
mov esi, edi
mov edx, dword [esp + 8]
sub esi, edx
mov dword [esp + 0x70], eax
mov ebp, edi
sub ebp, dword [esp + 0x1c]
cmp ebp, edx
mov ebx, dword [esp + 0x14]
jae 0x57530e
mov eax, edi
sub eax, dword [esp + 0x90]
cmp eax, edx
jb 0x575d35
sub esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x8c]
lea eax, [edx + esi]
lea ecx, [eax + ebx]
cmp ecx, edx
jbe 0x575351
mov ecx, esi
neg ecx
push ecx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub edi, esi
mov eax, ebx
mov ebx, esi
mov ecx, eax
add ebx, eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 8]
jmp 0x575310
mov ecx, ebx
cmp edx, 0x10
jb 0x57601c
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
cmp ebx, 0x11
jl 0x57535c
add ebx, edi
mov edx, 0x10
mov eax, dword [esp + 4]
nop
movups xmm0, xmmword [esi + edx]
movups xmmword [edi + edx], xmm0
movups xmm0, xmmword [esi + edx + 0x10]
movups xmmword [edi + edx + 0x10], xmm0
lea ecx, [edi + edx]
add ecx, 0x20
add edx, 0x20
cmp ecx, ebx
jb 0x575330
jmp 0x575360
push ebx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 4]
cmp eax, 0xffffff88
mov ebx, dword [esp + 0xc]
ja 0x575fbc
add ebx, eax
mov esi, dword [esp + 0x74]
add esi, 0xffffffff
je 0x575cca
mov eax, dword [esp + 0x2c]
cmp eax, 0x20
ja 0x5753da
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x5753c6
mov ebp, esi
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x5753c2
mov edi, eax
shr edi, 3
mov dword [esp + 0xc], ebx
mov ebx, ecx
sub ebx, edi
cmp ebx, esi
mov ebx, dword [esp + 0xc]
cmovb edi, edx
sub ecx, edi
mov dword [esp + 0x30], ecx
shl edi, 3
sub eax, edi
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov esi, ebp
jmp 0x5753da
mov edx, eax
shr edx, 3
sub ecx, edx
mov dword [esp + 0x30], ecx
and eax, 7
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x74], 2
jl 0x575d35
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + 0x10]
mov dword [esp + 0x68], edx
add ecx, 0x38
mov dword [esp + 0x64], ecx
jmp 0x575418
mov edx, eax
shr edx, 3
sub ecx, edx
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp + 0x2c], eax
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esi + ecx*8 + 4]
mov dword [esp + 4], ebp
movzx ebp, byte [esi + ecx*8 + 2]
mov dword [esp], ebp
movzx ebp, word [esi + ecx*8]
mov dword [esp + 0x20], ebp
movzx ecx, byte [esi + ecx*8 + 3]
mov dword [esp + 0x80], ecx
mov ecx, dword [edx + edi*8 + 4]
mov dword [esp + 0x14], ecx
movzx ecx, byte [edx + edi*8 + 2]
mov dword [esp + 0x94], ecx
movzx ecx, word [edx + edi*8]
mov dword [esp + 0x88], ecx
movzx ecx, byte [edx + edi*8 + 3]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov edi, dword [ecx + esi*8 + 4]
movzx edx, byte [ecx + esi*8 + 2]
movzx ebp, word [ecx + esi*8]
mov dword [esp + 0x10], ebp
movzx ecx, byte [ecx + esi*8 + 3]
cmp edx, 2
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], ecx
jb 0x575998
cmp dword [esp + 0xc0], 0
je 0x575530
cmp dl, 0x19
jb 0x575530
mov ebx, 0x20
sub ebx, eax
cmp ebx, edx
cmova ebx, edx
sub edx, ebx
mov esi, dword [esp + 0x28]
mov ebp, esi
mov ecx, eax
shl ebp, cl
mov ecx, ebx
neg cl
shr ebp, cl
add ebx, eax
mov ecx, edx
shl ebp, cl
cmp ebx, 0x20
ja 0x57559d
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x30]
cmp ebp, dword [esp + 0x38]
jae 0x575584
mov eax, dword [esp + 0x34]
mov ecx, ebp
sub ecx, eax
je 0x575599
mov esi, ebx
shr esi, 3
mov dword [esp + 0x74], eax
mov eax, ebp
sub eax, esi
cmp eax, dword [esp + 0x74]
cmovb esi, ecx
sub ebp, esi
mov dword [esp + 0x30], ebp
shl esi, 3
sub ebx, esi
jmp 0x575592
mov ebp, dword [esp + 0x28]
mov ecx, eax
shl ebp, cl
mov ecx, edx
neg cl
shr ebp, cl
add eax, edx
add ebp, edi
cmp eax, 0x20
mov esi, dword [esp + 4]
ja 0x5755b7
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x575926
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x5755b3
mov edi, eax
shr edi, 3
mov ebx, ecx
sub ebx, edi
cmp ebx, esi
cmovb edi, edx
sub ecx, edi
mov dword [esp + 0x30], ecx
shl edi, 3
sub eax, edi
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
jmp 0x5755b3
mov ecx, ebx
shr ecx, 3
sub ebp, ecx
mov dword [esp + 0x30], ebp
and ebx, 7
mov esi, dword [ebp]
mov dword [esp + 0x28], esi
mov ebp, dword [esp + 8]
add ebp, edi
test edx, edx
je 0x5755b1
mov ecx, ebx
shl esi, cl
mov ecx, edx
neg cl
shr esi, cl
add ebx, edx
add ebp, esi
mov eax, ebx
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x54]
mov edx, dword [esp]
mov edi, dword [esp + 0x94]
add edx, edi
mov ecx, dword [ecx]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], ebp
test edi, edi
jne 0x5759c1
cmp edx, 0x14
jb 0x575648
cmp eax, 0x20
mov ecx, dword [esp]
ja 0x57564b
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x575630
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x575943
mov edi, eax
shr edi, 3
mov ebx, ecx
sub ebx, edi
cmp ebx, esi
cmovb edi, edx
sub ecx, edi
mov dword [esp + 0x30], ecx
shl edi, 3
sub eax, edi
mov esi, dword [esp + 4]
jmp 0x57563e
mov edx, eax
shr edx, 3
sub ecx, edx
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp + 0x2c], eax
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp]
test ecx, ecx
jne 0x5759e9
cmp eax, 0x20
mov dword [esp + 4], esi
ja 0x5756a4
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x575690
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x5756a4
mov edi, eax
shr edi, 3
mov ebx, ecx
sub ebx, edi
cmp ebx, esi
cmovb edi, edx
sub ecx, edi
mov dword [esp + 0x30], ecx
shl edi, 3
sub eax, edi
jmp 0x57569e
mov edx, eax
shr edx, 3
sub ecx, edx
mov dword [esp + 0x30], ecx
and eax, 7
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x28]
add eax, edi
mov ecx, eax
neg cl
mov esi, edx
shr esi, cl
and esi, dword [edi*4 + 0x68b108]
mov ebx, dword [esp + 0x84]
add eax, ebx
mov ecx, eax
neg cl
mov edi, edx
shr edi, cl
add esi, dword [esp + 0x20]
and edi, dword [ebx*4 + 0x68b108]
mov dword [esp + 0x3c], esi
add edi, dword [esp + 0x88]
mov dword [esp + 0x4c], edi
cmp eax, 0x20
mov dword [esp + 8], ebp
jbe 0x575710
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
jmp 0x57576c
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
jae 0x575750
mov edi, dword [esp + 0x34]
mov esi, ecx
sub esi, edi
je 0x57594c
mov edx, eax
shr edx, 3
mov ebx, ecx
sub ebx, edx
cmp ebx, edi
mov ebx, dword [esp + 0xc]
cmovb edx, esi
sub ecx, edx
mov dword [esp + 0x30], ecx
shl edx, 3
sub eax, edx
jmp 0x57575e
mov edx, eax
shr edx, 3
sub ecx, edx
mov dword [esp + 0x30], ecx
and eax, 7
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x10]
mov edx, dword [ecx]
mov dword [esp + 0x28], edx
add eax, ebp
mov ecx, eax
neg cl
shr edx, cl
and edx, dword [ebp*4 + 0x68b108]
add edx, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x70]
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x78]
ja 0x575959
mov edx, dword [esp + 0x14]
lea ebp, [esi + edx]
lea edx, [ebx + ebp]
cmp edx, dword [esp + 0x7c]
ja 0x575959
mov edx, dword [esp + 0x6c]
sub edx, ebx
mov edi, esi
lea esi, [ebp + 0x20]
cmp edx, esi
mov esi, edi
jb 0x575959
lea edi, [ebx + esi]
movups xmm0, xmmword [ecx]
movups xmmword [ebx], xmm0
cmp esi, 0x11
jae 0x575a0f
mov esi, edi
mov ecx, dword [esp + 8]
sub esi, ecx
mov dword [esp + 0x70], eax
mov ebx, edi
sub ebx, dword [esp + 0x1c]
cmp ebx, ecx
jae 0x575840
mov eax, edi
sub eax, dword [esp + 0x90]
cmp eax, ecx
jb 0x575d35
mov dword [esp], ebx
sub esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x8c]
lea eax, [edx + esi]
mov ebx, dword [esp + 0x14]
lea ecx, [eax + ebx]
cmp ecx, edx
jbe 0x5758b0
mov dword [esp + 4], ebp
mov ecx, esi
neg ecx
push ecx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub edi, esi
mov ebp, esi
add ebp, ebx
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp]
jmp 0x575848
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edx, 0x10
jb 0x575a55
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
cmp ebp, 0x11
jge 0x575870
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 4]
jmp 0x5758bf
add ebp, edi
mov eax, 0x10
mov ebx, dword [esp + 0xc]
nop dword [eax + eax]
movups xmm0, xmmword [esi + eax]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [esi + eax + 0x10]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, ebp
jb 0x575880
mov ebp, dword [esp + 4]
jmp 0x5758bf
push ebx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
cmp ebp, 0xffffff88
ja 0x575d4c
add ebx, ebp
add eax, 0xffffffff
je 0x575cca
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
cmp eax, 0x20
ja 0x575418
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x575400
mov esi, dword [esp + 0x34]
mov edx, ecx
sub edx, esi
je 0x575418
mov edi, eax
shr edi, 3
mov ebp, ebx
mov ebx, ecx
sub ebx, edi
cmp ebx, esi
mov ebx, ebp
cmovb edi, edx
sub ecx, edi
mov dword [esp + 0x30], ecx
shl edi, 3
sub eax, edi
jmp 0x57540e
mov edx, eax
shr edx, 3
sub ecx, edx
mov dword [esp + 0x30], ecx
and eax, 7
mov dword [esp + 0x2c], eax
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
jmp 0x5755b7
mov esi, dword [esp + 4]
jmp 0x575648
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x10]
jmp 0x57576c
mov ecx, ebx
mov edx, dword [esp + 0x6c]
push dword [esp + 0x8c]
push dword [esp + 0x94]
push dword [esp + 0x24]
push dword [esp + 0x84]
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x2c]
push esi
call fcn.005b5500
add esp, 0x20
mov ebp, eax
jmp 0x5758bf
xor ecx, ecx
mov esi, dword [esp + 4]
test esi, esi
sete cl
test edx, edx
jne 0x575c7c
xor edx, edx
test esi, esi
setne dl
mov ebp, dword [esp + ecx*4 + 0x54]
lea ecx, [esp + edx*4]
add ecx, 0x54
jmp 0x5755c3
mov ecx, edi
mov esi, dword [esp + 0x28]
mov ecx, eax
shl esi, cl
mov ecx, edi
neg cl
shr esi, cl
add eax, edi
add dword [esp + 0x14], esi
mov esi, dword [esp + 4]
cmp edx, 0x14
jae 0x5755e6
jmp 0x575648
mov edi, ecx
mov edx, dword [esp + 0x28]
mov ecx, eax
shl edx, cl
mov ecx, edi
neg cl
shr edx, cl
add eax, edi
add esi, edx
cmp eax, 0x20
mov dword [esp + 4], esi
jbe 0x57565c
jmp 0x5756a4
add esi, 0xfffffff0
movups xmm0, xmmword [ecx + 0x10]
mov edx, dword [esp + 0xc]
movups xmmword [edx + 0x10], xmm0
cmp esi, 0x11
jl 0x5757d1
mov edx, dword [esp + 0xc]
add edx, 0x20
xor esi, esi
movups xmm0, xmmword [ecx + esi + 0x20]
movups xmmword [edx + esi], xmm0
movups xmm0, xmmword [ecx + esi + 0x30]
movups xmmword [edx + esi + 0x10], xmm0
lea ebx, [edx + esi]
add ebx, 0x20
add esi, 0x20
cmp ebx, edi
jb 0x575a30
jmp 0x5757d1
cmp edx, 7
ja 0x575a88
mov al, byte [esi]
mov byte [edi], al
mov al, byte [esi + 1]
mov byte [edi + 1], al
mov al, byte [esi + 2]
mov byte [edi + 2], al
mov al, byte [esi + 3]
mov byte [edi + 3], al
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [esi + eax]
add esi, eax
mov dword [edi + 4], ecx
sub esi, dword [edx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x575a90
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
cmp ebp, 9
jb 0x575860
mov dword [esp], ebx
lea ecx, [esi + 8]
lea edx, [edi + 8]
mov eax, edx
sub eax, ecx
lea ebx, [edi + ebp]
mov dword [esp + 0x10], ebx
cmp eax, 0xf
jg 0x575af9
mov ebp, dword [esp + 0x14]
add ebp, dword [esp + 0x1c]
mov eax, dword [esp + 8]
mov edi, dword [esp]
cmp eax, edi
mov ebx, edi
cmovb ebx, eax
cmova edi, eax
add ebx, ebp
add ebx, edi
sub ebx, eax
mov eax, dword [esp + 0x68]
add eax, edi
cmp ebx, eax
cmovbe ebx, eax
mov eax, dword [esp + 0x1c]
add eax, edi
sub ebx, eax
add ebx, 0xfffffff7
mov dword [esp + 0x18], ebx
cmp ebx, 0x18
jae 0x575b3e
mov ebx, dword [esp + 0xc]
jmp 0x575ba6
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp ebp, 0x19
jl 0x575860
add edi, 0x18
xor ecx, ecx
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 4]
mov edx, dword [esp + 0x10]
movups xmm0, xmmword [esi + ecx + 0x18]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x28]
movups xmmword [edi + ecx + 0x10], xmm0
lea eax, [edi + ecx]
add eax, 0x20
add ecx, 0x20
cmp eax, edx
jb 0x575b19
jmp 0x5758bf
mov ebx, dword [esp]
cmp dword [esp + 8], ebx
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
cmova eax, dword [esp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
cmovb ebx, eax
add ebp, ebx
mov ebx, dword [esp + 0x14]
add ebp, ebx
sub ebp, eax
mov eax, dword [esp + 0x68]
add eax, ebx
cmp ebp, eax
cmovbe ebp, eax
mov eax, dword [esp + 0x1c]
add eax, ebx
sub ebp, eax
add ebp, 0xfffffff7
and ebp, 0xfffffff8
lea eax, [esi + ebp]
add eax, 0x10
cmp edx, eax
mov ebx, dword [esp + 0xc]
jae 0x575bc9
mov eax, dword [esp + 0x68]
add eax, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x14]
add eax, ebp
sub eax, ebx
add eax, dword [esp]
cmp ecx, eax
jae 0x575bc9
mov ebp, dword [esp + 4]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, esi
jb 0x575bb2
jmp 0x5758c3
mov eax, dword [esp + 0x18]
shr eax, 3
add eax, 1
mov dword [esp + 0x18], eax
and eax, 0xfffffffc
mov dword [esp], eax
add eax, 0xfffffffc
mov ebx, eax
shr ebx, 2
add ebx, 1
test eax, eax
mov dword [esp + 8], ebx
je 0x575c34
and ebx, 0xfffffffe
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x64]
add eax, ebp
sub edi, ebp
add edi, eax
xor ebp, ebp
movups xmm0, xmmword [esi + ebp*8 + 8]
movups xmm1, xmmword [esi + ebp*8 + 0x18]
movups xmmword [edi + ebp*8 - 0x30], xmm0
movups xmmword [edi + ebp*8 - 0x20], xmm1
movups xmm0, xmmword [esi + ebp*8 + 0x28]
movups xmm1, xmmword [esi + ebp*8 + 0x38]
movups xmmword [edi + ebp*8 - 0x10], xmm0
movups xmmword [edi + ebp*8], xmm1
add ebp, 8
add ebx, 0xfffffffe
jne 0x575c03
jmp 0x575c36
xor ebp, ebp
test byte [esp + 8], 1
je 0x575c4f
movups xmm0, xmmword [ecx + ebp*8]
movups xmm1, xmmword [ecx + ebp*8 + 0x10]
movups xmmword [edx + ebp*8], xmm0
movups xmmword [edx + ebp*8 + 0x10], xmm1
mov edi, dword [esp]
cmp dword [esp + 0x18], edi
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
jne 0x575c6d
mov ebp, dword [esp + 4]
jmp 0x5758c3
lea edx, [edx + edi*8]
lea ecx, [ecx + edi*8]
mov ebp, dword [esp + 4]
jmp 0x575bb2
add edi, ecx
mov edx, dword [esp + 0x28]
mov ecx, eax
shl edx, cl
shr edx, 0x1f
add eax, 1
mov dword [esp + 0x2c], eax
add edx, edi
cmp edx, 3
jne 0x575ca6
mov ebp, dword [esp + 0x54]
add ebp, 0xffffffff
cmp ebp, 1
adc ebp, 0
jmp 0x575cb5
mov ebp, dword [esp + edx*4 + 0x54]
cmp ebp, 1
adc ebp, 0
cmp edx, 1
je 0x575cbd
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x54]
mov esi, dword [esp + 4]
jmp 0x5755c3
mov ebp, ebx
mov eax, dword [esp + 0x2c]
cmp eax, 0x20
mov ebx, dword [esp + 0x78]
ja 0x575cf6
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x38]
jae 0x575d35
cmp ecx, dword [esp + 0x34]
jne 0x575d35
mov dword [esp + 4], 0xffffffec
cmp eax, 0x20
jne 0x575d3d
mov edx, dword [esp + 0x60]
lea eax, [edx + 0x682c]
lea esi, [esp + 0x54]
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov ecx, edx
movsd xmm0, qword [esi]
movsd qword [eax], xmm0
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x98]
cmp dword [ecx + 0x75f0], 2
je 0x573f6b
jmp 0x5743ea
mov dword [esp + 4], 0xffffffec
mov eax, dword [esp + 4]
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], ebp
jmp 0x575d3d
xor ecx, ecx
mov eax, dword [esp + 0x20]
cmp eax, 0x20
jb 0x575e21
mov ecx, eax
and ecx, 0xffffffe0
lea eax, [ecx - 0x20]
mov edi, eax
shr edi, 5
add edi, 1
mov edx, edi
and edx, 3
mov dword [esp], edx
xor edx, edx
cmp eax, 0x60
jb 0x575ddc
and edi, 0xfffffffc
xor edx, edx
movups xmm0, xmmword [ebp + edx]
movups xmm1, xmmword [ebp + edx + 0x10]
movups xmmword [ebx + edx], xmm0
movups xmmword [ebx + edx + 0x10], xmm1
movups xmm0, xmmword [ebp + edx + 0x20]
movups xmm1, xmmword [ebp + edx + 0x30]
movups xmmword [ebx + edx + 0x20], xmm0
movups xmmword [ebx + edx + 0x30], xmm1
movups xmm0, xmmword [ebp + edx + 0x40]
movups xmm1, xmmword [ebp + edx + 0x50]
movups xmmword [ebx + edx + 0x40], xmm0
movups xmmword [ebx + edx + 0x50], xmm1
movups xmm0, xmmword [ebp + edx + 0x60]
movups xmm1, xmmword [ebp + edx + 0x70]
movups xmmword [ebx + edx + 0x60], xmm0
movups xmmword [ebx + edx + 0x70], xmm1
sub edx, 0xffffff80
add edi, 0xfffffffc
jne 0x575d85
cmp dword [esp], 0
je 0x575e0d
lea eax, [edx + ebp]
add eax, 0x10
add edx, ebx
add edx, 0x10
shl dword [esp], 5
xor edi, edi
movups xmm0, xmmword [eax + edi - 0x10]
movups xmm1, xmmword [eax + edi]
movups xmmword [edx + edi - 0x10], xmm0
movups xmmword [edx + edi], xmm1
add edi, 0x20
cmp dword [esp], edi
jne 0x575df3
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x57521f
test al, 0x18
je 0x575f6a
and eax, 0xfffffff8
lea edx, [ebx + eax]
lea edi, [eax + ebp]
movsd xmm0, qword [ebp + ecx]
movsd qword [ebx + ecx], xmm0
add ecx, 8
cmp eax, ecx
jne 0x575e2a
cmp dword [esp + 0x20], eax
jne 0x575210
jmp 0x57521f
mov dword [esp + 0x20], edi
xor edi, edi
cmp ebx, 0x20
jb 0x575f35
mov edi, ebx
and edi, 0xffffffe0
lea esi, [edi - 0x20]
mov dword [esp], esi
mov eax, edx
mov edx, ebp
mov ebp, esi
shr ebp, 5
add ebp, 1
mov esi, ebp
and esi, 3
mov dword [esp + 0x88], esi
xor esi, esi
cmp dword [esp], 0x60
jb 0x575ee0
and ebp, 0xfffffffc
xor esi, esi
movups xmm0, xmmword [eax + esi]
movups xmm1, xmmword [eax + esi + 0x10]
movups xmmword [edx + esi], xmm0
movups xmmword [edx + esi + 0x10], xmm1
movups xmm0, xmmword [eax + esi + 0x20]
movups xmm1, xmmword [eax + esi + 0x30]
movups xmmword [edx + esi + 0x20], xmm0
movups xmmword [edx + esi + 0x30], xmm1
movups xmm0, xmmword [eax + esi + 0x40]
movups xmm1, xmmword [eax + esi + 0x50]
movups xmmword [edx + esi + 0x40], xmm0
movups xmmword [edx + esi + 0x50], xmm1
movups xmm0, xmmword [eax + esi + 0x60]
movups xmm1, xmmword [eax + esi + 0x70]
movups xmmword [edx + esi + 0x60], xmm0
movups xmmword [edx + esi + 0x70], xmm1
sub esi, 0xffffff80
add ebp, 0xfffffffc
jne 0x575e8a
mov dword [esp + 0x10], eax
mov dword [esp], edx
mov edx, dword [esp + 0x88]
test edx, edx
je 0x575f21
mov eax, dword [esp + 0x10]
add eax, esi
add eax, 0x10
mov ebp, dword [esp]
add esi, ebp
add esi, 0x10
shl edx, 5
xor ebp, ebp
movups xmm0, xmmword [eax + ebp - 0x10]
movups xmm1, xmmword [eax + ebp]
movups xmmword [esi + ebp - 0x10], xmm0
movups xmmword [esi + ebp], xmm1
add ebp, 0x20
cmp edx, ebp
jne 0x575f08
cmp ebx, edi
mov ebp, dword [esp]
mov edx, dword [esp + 0x10]
je 0x57521f
test bl, 0x18
je 0x575f73
mov eax, dword [esp + 0x20]
cmp ecx, eax
cmova eax, ecx
sub eax, ebp
mov ebx, eax
and eax, 0xfffffff8
lea ecx, [eax + ebp]
lea esi, [edx + eax]
movsd xmm0, qword [edx + edi]
movsd qword [ebp + edi], xmm0
add edi, 8
cmp eax, edi
jne 0x575f4b
cmp ebx, eax
jne 0x5751a0
jmp 0x57521f
add ebp, ecx
add ebx, ecx
jmp 0x575205
add edx, edi
add ebp, edi
jmp 0x57518f
lea eax, [esp + 0x70]
mov edx, dword [esp + 0x6c]
push dword [esp + 0x8c]
push dword [esp + 0x94]
push dword [esp + 0x24]
push dword [esp + 0x84]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x2c]
push edi
call fcn.005b5500
add esp, 0x20
cmp eax, 0xffffff88
mov ebx, dword [esp + 0xc]
jbe 0x57536d
mov dword [esp + 4], eax
jmp 0x575d3d
add edx, 0xfffffff0
mov ecx, dword [esp + 0x60]
movups xmm0, xmmword [ecx + 0x7604]
mov ecx, dword [esp + 0xc]
movups xmmword [ecx + 0x10], xmm0
cmp edx, 0x11
jl 0x5752ab
mov ecx, dword [esp + 0xc]
add ecx, 0x20
xor edx, edx
mov esi, dword [esp + 0x60]
movups xmm0, xmmword [esi + edx + 0x7614]
movups xmmword [ecx + edx], xmm0
movups xmm0, xmmword [esi + edx + 0x7624]
movups xmmword [ecx + edx + 0x10], xmm0
lea esi, [ecx + edx]
add esi, 0x20
add edx, 0x20
cmp esi, edi
jb 0x575fed
jmp 0x5752ab
cmp edx, 7
ja 0x57605d
mov al, byte [esi]
mov byte [edi], al
mov al, byte [esi + 1]
mov byte [edi + 1], al
mov al, byte [esi + 2]
mov byte [edi + 2], al
mov al, byte [esi + 3]
mov byte [edi + 3], al
mov eax, dword [esp + 8]
mov eax, dword [eax*4 + 0x68b1a8]
mov edx, dword [esi + eax]
mov dword [esp], edx
add esi, eax
mov eax, dword [esp]
mov dword [edi + 4], eax
mov eax, dword [esp + 8]
sub esi, dword [eax*4 + str._b_b_b_a_b_t_n_v]
jmp 0x576065
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
cmp ebx, 9
jb 0x57535c
lea eax, [esi + 8]
mov dword [esp], eax
lea edx, [edi + 8]
mov eax, edx
sub eax, dword [esp]
mov dword [esp + 0x10], eax
lea eax, [edi + ebx]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x10], 0xf
jg 0x576192
add ecx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
cmp edi, ebp
mov ebx, ebp
cmovb ebx, edi
mov eax, ebp
cmova eax, edi
mov dword [esp + 0x14], ecx
add ebx, ecx
add ebx, eax
sub ebx, edi
mov edi, dword [esp + 0x1c]
lea ecx, [eax + edi]
add ecx, 0x10
cmp ebx, ecx
cmovbe ebx, ecx
mov ecx, eax
mov dword [esp + 0x20], eax
add eax, edi
sub ebx, eax
add ebx, 0xfffffff7
mov dword [esp + 0x10], ebx
cmp ebx, 0x18
jb 0x57620c
mov edi, dword [esp + 8]
cmp edi, ebp
mov eax, ebp
cmova eax, edi
cmovb ebp, edi
mov ecx, dword [esp + 0x14]
add ecx, ebp
add ecx, eax
sub ecx, edi
mov ebp, dword [esp + 0x1c]
lea edi, [eax + ebp]
add eax, ebp
add eax, 0x10
cmp ecx, eax
cmovbe ecx, eax
sub ecx, edi
add ecx, 0xfffffff7
and ecx, 0xfffffff8
lea eax, [ecx + esi]
add eax, 0x10
cmp edx, eax
jae 0x576125
mov ebp, ecx
lea eax, [ecx + edi]
add eax, 0x10
cmp dword [esp], eax
jb 0x57620c
mov eax, dword [esp + 0x10]
shr eax, 3
add eax, 1
mov dword [esp + 0x10], eax
and eax, 0xfffffffc
mov dword [esp + 8], eax
add eax, 0xfffffffc
mov ecx, eax
shr ecx, 2
add ecx, 1
test eax, eax
je 0x5761d2
mov ebp, ecx
and ebp, 0xfffffffe
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
add edi, eax
add edi, 0x38
xor ebx, ebx
movups xmm0, xmmword [esi + ebx*8 + 8]
movups xmm1, xmmword [esi + ebx*8 + 0x18]
movups xmmword [edi + ebx*8 - 0x30], xmm0
movups xmmword [edi + ebx*8 - 0x20], xmm1
movups xmm0, xmmword [esi + ebx*8 + 0x28]
movups xmm1, xmmword [esi + ebx*8 + 0x38]
movups xmmword [edi + ebx*8 - 0x10], xmm0
movups xmmword [edi + ebx*8], xmm1
add ebx, 8
add ebp, 0xfffffffe
jne 0x576161
jmp 0x5761d4
mov eax, dword [esp]
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
cmp ebx, 0x19
jl 0x57535c
add edi, 0x18
xor ecx, ecx
mov edx, dword [esp + 0x18]
movups xmm0, xmmword [esi + ecx + 0x18]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x28]
movups xmmword [edi + ecx + 0x10], xmm0
lea eax, [edi + ecx]
add eax, 0x20
add ecx, 0x20
cmp eax, edx
jb 0x5761ad
jmp 0x57535c
xor ebx, ebx
test cl, 1
je 0x5761ee
mov eax, dword [esp]
movups xmm0, xmmword [eax + ebx*8]
movups xmm1, xmmword [eax + ebx*8 + 0x10]
movups xmmword [edx + ebx*8], xmm0
movups xmmword [edx + ebx*8 + 0x10], xmm1
mov eax, dword [esp + 8]
cmp dword [esp + 0x10], eax
je 0x57535c
mov ecx, dword [esp + 8]
lea edx, [edx + ecx*8]
mov eax, dword [esp]
lea eax, [eax + ecx*8]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, eax
jb 0x576213
jmp 0x57535c
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x64]
shl esi, cl
shr esi, 0x1f
add ecx, 1
mov eax, ecx
mov dword [esp + 0x2c], ecx
add ebp, esi
add ebp, ebx
cmp ebp, 3
jne 0x57625c
mov ecx, dword [esp + 0x54]
add ecx, 0xffffffff
cmp ecx, 1
adc ecx, 0
mov dword [esp + 8], ecx
jmp 0x576273
mov ecx, ebp
mov edx, ebp
mov ecx, dword [esp + ecx*4 + 0x54]
cmp ecx, 1
adc ecx, 0
mov dword [esp + 8], ecx
cmp ebp, 1
je 0x57627b
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x58], ecx
mov ebx, edi
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
jmp 0x5744a7