Function at 0x5797d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x9c
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x70], eax
inc eax
je 0x57a1c4
mov ebx, dword [edx]
mov dword [ebp - 0x5c], edx
lea esi, [ebx + 1]
mov dword [ebp - 0x6c], ebx
mov ecx, esi
shr ecx, 3
lea edi, [ecx*8]
sub edi, ecx
cmp ebx, 8
cmovb edi, ebx
mov ecx, edi
shr ecx, 1
cmp eax, ecx
jbe 0x579857
mov edx, dword [ebp - 0x70]
inc edi
lea ecx, [ebp - 0xa8]
cmp eax, edi
cmova edi, eax
push edi
push 0xc
call fcn.004a5d20
add esp, 8
mov edx, dword [ebp - 0xa4]
cmp dword [ebp - 0xa8], 1
mov ecx, dword [ebp - 0xa0]
jne 0x5798d4
mov eax, dword [ebp - 0x60]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax], 1
jmp 0x5798c9
mov dword [ebp - 0x4c], edi
mov edi, dword [edx + 4]
movdqa xmm0, xmmword [0x6073a0]
xor ecx, ecx
xor eax, eax
test cl, 1
je 0x579875
nop
add eax, 0xf
jb 0x579895
cmp eax, esi
jae 0x579895
pxor xmm1, xmm1
mov cl, 1
pcmpgtb xmm1, xmmword [edi + eax]
por xmm1, xmm0
movdqa xmmword [edi + eax], xmm1
inc eax
test cl, 1
jne 0x579870
jmp 0x579875
cmp esi, 0x10
jae 0x579a64
lea eax, [edi + 0x10]
push esi
push edi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
test esi, esi
jne 0x579a7b
sub ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x60]
mov dword [ecx], 0
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x54], edx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x48], ecx
mov edi, dword [ebp - 0x94]
mov dword [ebp - 0x58], esi
mov eax, dword [eax + 4]
mov ebx, dword [edx + 8]
mov dword [ebp - 0x40], edi
movdqa xmm0, xmmword [eax]
add esi, eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x2c], esi
pmovmskb ecx, xmm0
not ecx
mov dword [ebp - 0x28], ecx
mov ecx, dword [edx]
mov dword [ebp - 0x18], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x34], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x44], ecx
jmp 0x579973
mov ebx, dword [ebp - 0x1c]
lea ecx, [edx - 0x10]
and ecx, dword [ebp - 0x14]
shr ebx, 0x19
mov byte [eax + edx], bl
mov byte [ecx + eax + 0x10], bl
mov ecx, dword [ebp - 0x10]
not edx
mov ebx, dword [ebp - 0x3c]
lea esi, [ecx + esi*4]
lea ecx, [edx + edx*2]
mov edx, dword [esi + 8]
mov dword [eax + ecx*4 + 8], edx
mov edx, eax
movq xmm0, qword [esi]
movq qword [eax + ecx*4], xmm0
mov eax, dword [ebp - 0x28]
test ax, ax
je 0x579990
lea ecx, [eax - 1]
and ecx, eax
mov dword [ebp - 0x28], ecx
jmp 0x5799d1
mov ecx, dword [ebp - 0x14]
nop word cs:[eax + eax]
nop dword [eax]
cmp edi, dword [ebp - 0x2c]
jae 0x57a15e
movdqa xmm0, xmmword [edi]
add dword [ebp - 0x10], 0xffffff40
add edi, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x5799a0
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov edx, eax
and edx, ecx
mov dword [ebp - 0x28], edx
bsf ax, ax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x34]
movzx eax, ax
not eax
lea esi, [eax + eax*2]
mov eax, dword [ebp - 0x10]
push dword [eax + esi*4 + 4]
push dword [eax + esi*4]
push dword [ebp - 0x30]
push ebx
call fcn.00568060
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
and ecx, eax
movdqu xmm0, xmmword [edx + ecx]
pmovmskb edx, xmm0
test edx, edx
jne 0x579a37
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
mov ebx, 0x10
nop
add ecx, ebx
add ebx, 0x10
and ecx, esi
movdqu xmm0, xmmword [eax + ecx]
pmovmskb edx, xmm0
test edx, edx
je 0x579a20
mov esi, dword [ebp - 0x24]
bsf dx, dx
mov eax, dword [ebp - 0x20]
movzx edx, dx
add edx, ecx
and edx, dword [ebp - 0x14]
cmp byte [eax + edx], 0
js 0x579940
movdqa xmm0, xmmword [eax]
pmovmskb ecx, xmm0
bsf cx, cx
movzx edx, cx
jmp 0x579940
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
mov ecx, dword [ebp - 0x4c]
movq qword [edi + esi + 8], xmm1
movq qword [edi + esi], xmm0
mov edx, dword [ebp + 8]
mov dword [ebp - 0x8c], edi
mov ebx, dword [edx + 4]
mov esi, dword [edx + 8]
mov eax, dword [edx]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x50], edx
mov edx, eax
mov dword [ebp - 0x38], esi
mov esi, eax
mov dword [ebp - 0x68], ebx
xor ebx, 0x736f6d65
xor dword [ebp - 0x68], 0x6c796765
mov eax, dword [ebp - 0x50]
xor esi, 0x6e657261
xor edx, 0x70736575
xor dword [ebp - 0x50], 0x74656462
mov dword [ebp - 0x88], esi
mov esi, dword [ebp - 0x38]
xor eax, 0x646f7261
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x38]
xor esi, 0x79746573
mov dword [ebp - 0x38], esi
mov esi, dword [ebp - 0x10]
xor eax, 0x6e646f6d
add edx, eax
adc ebx, dword [ebp - 0x10]
shld esi, eax, 0xd
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x10]
xor esi, dword [ebp - 0x64]
shld eax, ebx, 0xd
xor eax, edx
mov edx, esi
mov dword [ebp - 0x7c], esi
shld edx, eax, 0x11
mov dword [ebp - 0x80], eax
shld eax, esi, 0x11
mov dword [ebp - 0x78], edx
xor edx, edx
mov dword [ebp - 0x74], eax
jmp 0x579b44
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x10]
lea eax, [edx - 0x10]
shr ecx, 0x19
and eax, esi
mov byte [edi + edx], cl
mov byte [eax + edi + 0x10], cl
mov ecx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x6c]
lea edx, [edx + 1]
je 0x5798b7
cmp byte [edi + edx], 0x80
jne 0x579b38
mov eax, edx
mov dword [ebp - 0x40], edx
not eax
lea eax, [eax + eax*2]
lea edx, [edi + eax*4]
mov dword [ebp - 0x54], edx
nop word [eax + eax]
mov eax, dword [edx + 4]
mov ebx, dword [edx]
mov edx, 4
cmp eax, 4
mov dword [ebp - 0x24], eax
cmovb edx, eax
cmp edx, 3
jbe 0x579b90
mov esi, dword [ebx + 8]
mov eax, 4
mov ecx, eax
or ecx, 1
cmp ecx, edx
jb 0x579b9d
jmp 0x579bbf
xor eax, eax
xor esi, esi
mov ecx, eax
or ecx, 1
cmp ecx, edx
jae 0x579bbf
mov edi, esi
movzx esi, word [ebx + eax + 8]
lea ecx, [eax*8]
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne esi, ecx
or eax, 2
or edi, esi
mov esi, edi
cmp eax, edx
jae 0x579bdb
movzx edx, byte [ebx + eax + 8]
shl eax, 3
mov ecx, eax
shl edx, cl
test al, 0x20
mov ecx, 0
cmovne edx, ecx
or esi, edx
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x28], esi
lea edx, [edi + 4]
cmp edi, 4
jae 0x579c30
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x2c], eax
mov eax, edx
mov edx, dword [ebp - 0x50]
jmp 0x579ec1
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x34], ebx
xor eax, esi
mov esi, dword [ebp - 0x68]
xor ecx, edi
add edx, ecx
mov ebx, edx
mov dword [ebp - 0x1c], edx
mov edx, ecx
adc esi, eax
shld edx, eax, 0x10
shrd ecx, eax, 0x10
xor edx, ebx
xor ecx, esi
mov eax, edx
mov ebx, ecx
add eax, dword [ebp - 0x64]
adc ebx, dword [ebp - 0x84]
mov dword [ebp - 0x10], eax
mov eax, edx
shrd edx, ecx, 0xb
shld eax, ecx, 0x15
mov ecx, dword [ebp - 0x1c]
xor edx, ebx
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x10]
xor eax, edx
add ecx, dword [ebp - 0x80]
mov dword [ebp - 0x30], eax
adc esi, dword [ebp - 0x7c]
mov eax, ecx
xor ebx, dword [ebp - 0x28]
xor edx, edi
add edi, 0xfffffffc
mov dword [ebp - 0x1c], ecx
xor eax, dword [ebp - 0x74]
mov dword [ebp - 0x14], esi
xor esi, dword [ebp - 0x78]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x2c], esi
mov esi, edi
and esi, 7
and edi, 0xfffffff8
mov dword [ebp - 0x58], esi
je 0x579dd5
lea ecx, [edi - 5]
mov ebx, edi
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0xc
and ecx, 0xfffffff8
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x18]
nop dword [eax + eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x34]
mov ebx, dword [ebx + eax + 4]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x34]
xor esi, dword [ebp - 0x18]
mov eax, dword [ebx + eax]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
xor edi, eax
mov eax, dword [ebp - 0x20]
add edx, eax
mov dword [ebp - 0x10], edx
mov edx, eax
adc ecx, ebx
shld edx, ebx, 0xd
shld ebx, eax, 0xd
mov eax, dword [ebp - 0x1c]
xor ebx, ecx
xor edx, dword [ebp - 0x10]
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x3c], edx
add ebx, edi
adc eax, esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], eax
mov eax, edi
shrd edi, esi, 0x10
shld eax, esi, 0x10
xor edi, dword [ebp - 0x20]
xor eax, ebx
add ecx, eax
mov ebx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x10]
adc ecx, edi
shrd eax, edi, 0xb
shld ebx, edi, 0x15
mov esi, eax
mov eax, dword [ebp - 0x14]
mov edi, ebx
mov dword [ebp - 0x10], ecx
mov ebx, dword [ebp - 0x20]
xor esi, ecx
mov ecx, dword [ebp - 0x2c]
xor edi, dword [ebp - 0x1c]
add eax, edx
adc ebx, dword [ebp - 0x2c]
shld edx, ecx, 0x11
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
xor dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
shld dword [ebp - 0x2c], ecx, 0x11
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ebx
xor dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x24]
xor edx, dword [ebp - 0x30]
xor ecx, dword [ebp - 0x18]
cmp eax, ebx
lea eax, [eax + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
jb 0x579ce0
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x58]
add edi, 0xc
xor eax, eax
cmp esi, 3
jbe 0x579de7
mov ecx, dword [ecx + edi + 8]
mov ebx, 4
mov dword [ebp - 0x24], ecx
jmp 0x579df0
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x20], eax
mov edi, 4
xor eax, eax
cmp esi, 3
ja 0x579dc7
xor ebx, ebx
mov dword [ebp - 0x24], 0
mov ecx, ebx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x44], edi
or ecx, 1
cmp ecx, esi
jae 0x579e40
lea ecx, [ebx + edi]
mov edi, eax
mov eax, dword [ebp - 0x34]
xor edx, edx
movzx esi, word [eax + ecx + 8]
lea ecx, [ebx*8]
mov eax, 0
shld edx, esi, cl
shl esi, cl
test cl, 0x20
cmovne edx, esi
cmovne esi, eax
or ebx, 2
or edi, edx
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x24]
or edi, esi
mov esi, dword [ebp - 0x58]
cmp ebx, esi
jb 0x579e4a
jmp 0x579e78
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
cmp ebx, esi
jae 0x579e78
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
mov edx, ebx
shl edx, 3
add eax, ebx
xor ebx, ebx
movzx esi, byte [ecx + eax + 8]
mov ecx, edx
mov eax, 0
shld ebx, esi, cl
shl esi, cl
test dl, 0x20
cmovne ebx, esi
cmovne esi, eax
or dword [ebp - 0x28], ebx
or edi, esi
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
add eax, edi
mov ebx, edi
adc ecx, edx
shld ebx, edx, 0xd
shld edx, edi, 0xd
mov dword [ebp - 0x10], eax
xor edx, ecx
xor ebx, eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, edx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], edx
shld eax, ebx, 0x11
shld ebx, edx, 0x11
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], ebx
shl eax, 0x18
xor esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
or eax, dword [ebp - 0x28]
mov edi, esi
xor edx, eax
add ebx, esi
mov dword [ebp - 0x48], eax
adc ecx, edx
shld edi, edx, 0x10
shrd esi, edx, 0x10
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], ecx
xor esi, ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
xor edi, ebx
mov ebx, edi
add edx, edi
adc ecx, esi
shld ebx, esi, 0x15
shrd edi, esi, 0xb
mov esi, edx
xor ebx, edx
xor edi, ecx
add eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1c]
adc edx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
xor esi, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x48]
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x34]
xor eax, dword [ebp - 0x14]
xor esi, edx
xor edx, 0xff
add dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edx
mov edx, ecx
mov ecx, eax
adc edx, esi
shrd eax, esi, 0x13
shld ecx, esi, 0xd
mov esi, dword [ebp - 0x1c]
xor eax, edx
xor ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov edx, ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
add esi, ebx
mov dword [ebp - 0x1c], esi
adc eax, edi
shrd ebx, edi, 0x10
shld edx, edi, 0x10
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
xor ebx, eax
mov eax, dword [ebp - 0x10]
xor edx, esi
mov esi, edx
add eax, edx
adc edi, ebx
shld esi, ebx, 0x15
shrd edx, ebx, 0xb
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
xor esi, eax
xor edx, edi
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x14]
add ebx, ecx
adc edi, eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], edi
mov edi, ecx
shrd ecx, eax, 0xf
shld edi, eax, 0x11
xor ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
xor edi, ebx
add dword [ebp - 0x10], edi
mov ebx, edi
adc eax, ecx
shld ebx, ecx, 0xd
shrd edi, ecx, 0x13
mov ecx, dword [ebp - 0x1c]
xor edi, eax
xor ebx, dword [ebp - 0x10]
add dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
mov eax, esi
adc ecx, edx
shrd esi, edx, 0x10
shld eax, edx, 0x10
mov dword [ebp - 0x1c], ecx
xor esi, ecx
mov ecx, dword [ebp - 0x14]
xor eax, ecx
add dword [ebp - 0x18], eax
mov edx, eax
adc dword [ebp - 0x10], esi
shld edx, esi, 0x15
shrd eax, esi, 0xb
mov esi, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x10]
xor edx, dword [ebp - 0x18]
add ecx, ebx
mov dword [ebp - 0x14], ecx
mov ecx, ebx
adc esi, edi
shld ecx, edi, 0x11
shrd ebx, edi, 0xf
xor ecx, dword [ebp - 0x14]
xor ebx, esi
mov edi, esi
add dword [ebp - 0x18], ecx
mov esi, ecx
adc dword [ebp - 0x10], ebx
shld esi, ebx, 0xd
shrd ecx, ebx, 0x13
mov ebx, eax
xor esi, dword [ebp - 0x18]
xor ecx, dword [ebp - 0x10]
add edi, edx
adc dword [ebp - 0x14], eax
shld ebx, edx, 0x10
shld edx, eax, 0x10
mov eax, dword [ebp - 0x14]
xor edx, edi
xor ebx, eax
shrd ebx, edx, 0xb
add edi, esi
adc eax, ecx
shrd ecx, esi, 0xf
xor ecx, ebx
xor ecx, eax
mov eax, dword [ebp - 0x6c]
xor ecx, edi
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0x10], ecx
mov ebx, eax
and ebx, ecx
mov ecx, eax
movdqu xmm0, xmmword [edi + ebx]
mov edx, ebx
pmovmskb eax, xmm0
test eax, eax
jne 0x57a094
mov esi, 0x10
mov edx, ebx
nop word [eax + eax]
add edx, esi
add esi, 0x10
and edx, ecx
movdqu xmm0, xmmword [edi + edx]
pmovmskb eax, xmm0
test eax, eax
je 0x57a080
bsf ax, ax
movzx eax, ax
add eax, edx
and eax, ecx
cmp byte [edi + eax], 0
js 0x57a0b4
movdqa xmm0, xmmword [edi]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
mov edx, dword [ebp - 0x40]
mov esi, eax
sub esi, ebx
sub edx, ebx
xor esi, edx
and esi, ecx
cmp esi, 0x10
mov esi, ecx
jb 0x579b20
mov ebx, dword [ebp - 0x10]
mov cl, byte [edi + eax]
lea edx, [eax - 0x10]
and edx, esi
shr ebx, 0x19
cmp cl, 0xff
mov byte [edi + eax], bl
mov byte [edx + edi + 0x10], bl
je 0x57a130
not eax
mov edx, dword [ebp - 0x54]
lea eax, [eax + eax*2]
mov ecx, dword [edi + eax*4 + 8]
mov dword [ebp - 0xa0], ecx
movsd xmm0, qword [edi + eax*4]
movsd qword [ebp - 0xa8], xmm0
mov ecx, dword [edx + 8]
mov dword [edi + eax*4 + 8], ecx
movsd xmm0, qword [edx]
movsd qword [edi + eax*4], xmm0
mov eax, dword [ebp - 0xa0]
mov dword [edx + 8], eax
movq xmm0, qword [ebp - 0xa8]
movq qword [edx], xmm0
jmp 0x579b60
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x54]
not eax
lea eax, [eax + eax*2]
lea ecx, [edx - 0x10]
mov byte [edi + edx], 0xff
and ecx, esi
mov byte [ecx + edi + 0x10], 0xff
mov ecx, dword [ebx + 8]
mov dword [edi + eax*4 + 8], ecx
movq xmm0, qword [ebx]
movq qword [edi + eax*4], xmm0
jmp 0x579b35
mov eax, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x48]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 4], edx
test ebx, ebx
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x60]
mov dword [ecx], 0
je 0x5798c9
mov eax, dword [ebp - 0x54]
mul dword [ebp - 0x58]
lea ecx, [esi + eax - 1]
mov eax, esi
neg eax
and eax, ecx
add ebx, eax
cmp ebx, 0xffffffef
je 0x5798c9
mov ecx, dword [ebp - 0x38]
sub ecx, eax
cmp esi, 9
jb 0x57a1b1
mov ecx, dword [ecx - 4]
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5798c9
call fcn.0049fcd0
ud2