Function at 0x57a1d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x64], eax
inc eax
je 0x57ad77
mov edi, dword [edx]
mov dword [ebp - 0x58], edx
lea esi, [edi + 1]
mov dword [ebp - 0x68], edi
mov ecx, esi
shr ecx, 3
lea ebx, [ecx*8]
sub ebx, ecx
cmp edi, 8
cmovb ebx, edi
mov ecx, ebx
shr ecx, 1
cmp eax, ecx
jbe 0x57a257
mov edx, dword [ebp - 0x64]
inc ebx
lea ecx, [ebp - 0x9c]
cmp eax, ebx
cmova ebx, eax
push ebx
push 0x10
call fcn.004a5d20
add esp, 8
mov edx, dword [ebp - 0x98]
cmp dword [ebp - 0x9c], 1
mov ecx, dword [ebp - 0x94]
jne 0x57a2d2
mov eax, dword [ebp - 0x5c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax], 1
jmp 0x57a2c7
mov dword [ebp - 0x50], ebx
mov ebx, dword [edx + 4]
movdqa xmm0, xmmword [0x6073b0]
xor ecx, ecx
xor eax, eax
test cl, 1
je 0x57a28f
jmp 0x57a28a
pxor xmm1, xmm1
mov cl, 1
pcmpgtb xmm1, xmmword [ebx + eax]
por xmm1, xmm0
movdqa xmmword [ebx + eax], xmm1
inc eax
test cl, 1
je 0x57a28f
add eax, 0xf
jb 0x57a293
cmp eax, esi
jb 0x57a270
cmp esi, 0x10
jae 0x57a464
lea eax, [ebx + 0x10]
push esi
push ebx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, dword [ebp - 0x50]
test esi, esi
jne 0x57a47b
sub ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ecx], 0
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x48], esi
mov eax, dword [eax + 4]
mov ebx, dword [edx + 8]
movdqa xmm0, xmmword [eax]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x18], eax
pmovmskb ecx, xmm0
not ecx
mov dword [ebp - 0x20], ecx
mov ecx, dword [edx]
mov dword [ebp - 0x38], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x30], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
lea ecx, [eax + esi]
mov esi, ebx
lea ebx, [eax + 0x10]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], esi
jmp 0x57a374
mov eax, dword [ebp - 0x34]
lea ecx, [edx - 0x10]
and ecx, dword [ebp - 0x1c]
shr eax, 0x19
mov byte [esi + edx], al
mov byte [ecx + esi + 0x10], al
mov eax, dword [ebp - 0x24]
not edx
shl edx, 4
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esi + edx + 8], xmm1
movq qword [esi + edx], xmm0
mov edx, esi
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test ax, ax
je 0x57a390
lea ecx, [eax - 1]
and ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x57a3d1
mov ecx, dword [ebp - 0x1c]
nop word cs:[eax + eax]
nop dword [eax]
cmp ebx, dword [ebp - 0x14]
jae 0x57ad14
movdqa xmm0, xmmword [ebx]
add dword [ebp - 0x18], 0xffffff00
add ebx, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x57a3a0
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov edx, eax
and edx, ecx
mov dword [ebp - 0x20], edx
bsf ax, ax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x30]
movzx eax, ax
not eax
shl eax, 4
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
push eax
push dword [ebp - 0x2c]
push esi
call fcn.004fa740
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x34], eax
and ecx, eax
movdqu xmm0, xmmword [edx + ecx]
pmovmskb edx, xmm0
test edx, edx
jne 0x57a437
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
mov edi, 0x10
nop dword [eax]
add ecx, edi
add edi, 0x10
and ecx, esi
movdqu xmm0, xmmword [eax + ecx]
pmovmskb edx, xmm0
test edx, edx
je 0x57a420
mov edi, dword [ebp - 0x68]
bsf dx, dx
mov esi, dword [ebp - 0x10]
movzx edx, dx
add edx, ecx
and edx, dword [ebp - 0x1c]
cmp byte [esi + edx], 0
js 0x57a340
movdqa xmm0, xmmword [esi]
pmovmskb ecx, xmm0
bsf cx, cx
movzx edx, cx
jmp 0x57a340
movq xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
mov ecx, dword [ebp - 0x50]
movq qword [ebx + esi + 8], xmm1
movq qword [ebx + esi], xmm0
mov edx, dword [ebp + 8]
mov dword [ebp - 0xa0], ebx
mov eax, dword [edx]
mov esi, dword [edx + 8]
mov dword [ebp - 0x48], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x44], esi
mov esi, dword [edx + 0xc]
mov edx, eax
xor eax, 0x6c796765
xor edx, 0x736f6d65
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x48]
xor dword [ebp - 0x48], 0x6e657261
xor edx, 0x70736575
mov dword [ebp - 0x78], edx
mov edx, esi
xor esi, 0x74656462
xor edx, 0x646f7261
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x44]
xor dword [ebp - 0x44], 0x79746573
xor edx, 0x6e646f6d
mov dword [ebp - 0x70], edx
jmp 0x57a515
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x18]
lea eax, [ecx - 0x10]
shr edx, 0x19
and eax, edi
mov byte [ebx + ecx], dl
mov byte [eax + ebx + 0x10], dl
mov eax, ecx
mov ecx, dword [ebp - 0x50]
cmp eax, edi
lea eax, [eax + 1]
je 0x57a2b5
cmp byte [ebx + eax], 0x80
jne 0x57a50a
mov dword [ebp - 0x60], eax
not eax
shl eax, 4
lea edx, [ebx + eax]
lea eax, [ebx + eax + 8]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x6c], edx
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [edx]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x54]
mov edx, dword [eax]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x70]
mov esi, edx
mov eax, edx
and esi, 7
and eax, 0xfffffff8
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x20], ecx
mov ecx, 0
je 0x57a69c
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x78]
nop word cs:[eax + eax]
nop
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebx + eax + 4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x38]
xor edi, dword [ebp - 0x24]
mov ebx, dword [ebx + eax]
mov eax, dword [ebp - 0x18]
xor edx, ebx
add eax, esi
mov dword [ebp - 0x30], ebx
mov ebx, esi
adc dword [ebp - 0x14], ecx
shld ebx, ecx, 0xd
shld ecx, esi, 0xd
mov esi, dword [ebp - 0x10]
xor ebx, eax
xor ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x1c]
add esi, edx
adc ebx, edi
mov dword [ebp - 0x10], ebx
mov ebx, edx
shrd edx, edi, 0x10
shld ebx, edi, 0x10
mov edi, dword [ebp - 0x14]
xor edx, dword [ebp - 0x10]
xor ebx, esi
add edi, ebx
adc eax, edx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x18], eax
mov eax, ebx
shrd ebx, edx, 0xb
shld eax, edx, 0x15
mov edi, ebx
mov ebx, dword [ebp - 0x10]
mov edx, eax
mov eax, dword [ebp - 0x2c]
xor edi, dword [ebp - 0x18]
xor edx, dword [ebp - 0x34]
add esi, eax
mov dword [ebp - 0x1c], esi
mov esi, eax
adc ebx, ecx
shld esi, ecx, 0x11
shld ecx, eax, 0x11
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], ebx
xor ecx, ebx
mov ebx, dword [ebp - 0x20]
xor esi, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x24]
add ebx, 8
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
xor eax, dword [ebp - 0x30]
cmp ebx, dword [ebp - 0x28]
jb 0x57a5d0
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x20], edi
mov edi, edx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x4c]
cmp esi, 3
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], ecx
jbe 0x57a6c0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + ecx]
mov dword [ebp - 0x24], eax
mov eax, 4
jmp 0x57a6c9
xor eax, eax
mov dword [ebp - 0x24], 0
mov ecx, eax
mov dword [ebp - 0x2c], edi
or ecx, 1
cmp ecx, esi
jae 0x57a730
mov ecx, eax
mov esi, dword [ebp - 0x38]
xor ebx, ebx
or ecx, dword [ebp - 0x28]
movzx esi, word [esi + ecx]
lea ecx, [eax*8]
shld ebx, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne ebx, esi
cmovne esi, ecx
or eax, 2
mov edi, ebx
mov ebx, dword [ebp - 0x3c]
or dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x4c]
or ebx, edi
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
cmp eax, esi
jb 0x57a73a
inc edx
test esi, esi
je 0x57a858
mov dword [ebp - 0x10], ecx
jmp 0x57a768
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x10]
cmp eax, esi
jae 0x57a717
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x38]
xor edi, edi
add esi, eax
shl eax, 3
movzx esi, byte [ecx + esi]
mov ecx, eax
shld edi, esi, cl
shl esi, cl
test al, 0x20
mov eax, 0
cmovne edi, esi
cmovne esi, eax
inc edx
or dword [ebp - 0x24], esi
or ebx, edi
mov dword [ebp - 0x3c], ebx
mov esi, dword [ebp - 0x4c]
xor edi, edi
mov eax, 0xff
mov ebx, 0xff
lea ecx, [esi*8]
shld edi, eax, cl
shl ebx, cl
test cl, 0x20
mov eax, 0
cmovne edi, ebx
cmovne ebx, eax
or edi, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x24]
cmp esi, 7
jne 0x57a850
mov ecx, 8
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], ebx
sub ecx, esi
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x30]
xor esi, edi
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x14], ecx
xor edi, ebx
add dword [ebp - 0x18], ecx
mov ebx, dword [ebp - 0x1c]
adc edx, eax
shld dword [ebp - 0x14], eax, 0xd
shld eax, ecx, 0xd
mov ecx, dword [ebp - 0x18]
xor eax, edx
xor dword [ebp - 0x14], ecx
add dword [ebp - 0x10], edi
mov ecx, edi
adc ebx, esi
shld ecx, esi, 0x10
shrd edi, esi, 0x10
mov esi, dword [ebp - 0x18]
xor ecx, dword [ebp - 0x10]
xor edi, ebx
add edx, ecx
mov dword [ebp - 0x20], ecx
adc esi, edi
shrd ecx, edi, 0xb
shld dword [ebp - 0x20], edi, 0x15
mov edi, dword [ebp - 0x10]
xor dword [ebp - 0x20], edx
mov dword [ebp - 0x18], esi
xor ecx, esi
mov esi, dword [ebp - 0x14]
add edi, esi
mov dword [ebp - 0x1c], edi
adc ebx, eax
mov edi, esi
shrd esi, eax, 0xf
xor edx, dword [ebp - 0x38]
shld edi, eax, 0x11
mov eax, esi
mov esi, dword [ebp - 0x18]
xor edi, dword [ebp - 0x1c]
xor eax, ebx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
xor esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x14], esi
mov esi, ebx
jmp 0x57a865
mov esi, dword [ebp - 0x2c]
jmp 0x57aa24
mov esi, ecx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x40], edx
xor edx, edx
mov dword [ebp - 0x20], ecx
mov ecx, 1
mov dword [ebp - 0x34], eax
sub ecx, edx
mov eax, ecx
and ecx, 0xfffffff8
and eax, 7
cmp edx, ecx
mov dword [ebp - 0x3c], eax
jae 0x57a990
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], edx
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
nop word [eax + eax]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax - 0x98]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
xor eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax - 0x9c]
xor edi, eax
add ebx, edx
mov dword [ebp - 0x34], eax
mov eax, edx
adc ecx, esi
shld eax, esi, 0xd
shld esi, edx, 0xd
mov edx, edi
xor eax, ebx
xor esi, ecx
mov dword [ebp - 0x14], ecx
add dword [ebp - 0x10], edi
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x20]
adc ecx, eax
shld edx, eax, 0x10
shrd edi, eax, 0x10
mov eax, dword [ebp - 0x14]
xor edx, dword [ebp - 0x10]
xor edi, ecx
mov dword [ebp - 0x30], ecx
add eax, edx
mov ecx, edx
adc ebx, edi
shld ecx, edi, 0x15
shrd edx, edi, 0xb
mov dword [ebp - 0x14], eax
mov edi, ecx
mov ecx, dword [ebp - 0x38]
xor edx, ebx
xor edi, eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], edx
mov edx, ecx
add eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
adc eax, esi
shld edx, esi, 0x11
shld esi, ecx, 0x11
add dword [ebp - 0x24], 8
mov ecx, ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
xor esi, eax
mov eax, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x18]
xor edx, dword [ebp - 0x1c]
xor ebx, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x2c]
jb 0x57a8a0
mov eax, edi
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], 0
cmp edi, 3
jbe 0x57a9a5
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x2c], eax
mov eax, 4
mov ebx, dword [ebp + edx - 0x9c]
jmp 0x57a9b5
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x3c]
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x28], 0
mov ecx, esi
jmp 0x57a9b5
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x2c], eax
xor ebx, ebx
xor eax, eax
mov esi, eax
or eax, 1
mov dword [ebp - 0x10], ecx
cmp eax, edi
jae 0x57a9ef
add edx, esi
lea ecx, [esi*8]
movzx eax, word [ebp + edx - 0x9c]
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edx, eax
cmovne eax, ecx
or esi, 2
or dword [ebp - 0x28], edx
or ebx, eax
mov ecx, esi
cmp esi, edi
jae 0x57aa30
shl ecx, 3
xor eax, eax
mov edx, 0xff
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
shld eax, edx, cl
mov edx, 0xff
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
or ebx, edx
mov edx, dword [ebp - 0x40]
or edi, eax
mov ecx, dword [ebp - 0x30]
jmp 0x57aa3c
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x28]
shl edx, 0x18
xor esi, ebx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], ebx
mov ebx, ecx
or edx, edi
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x40], edx
xor edi, edx
add dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
adc edx, eax
shld ecx, eax, 0xd
shld eax, ebx, 0xd
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
xor eax, edx
xor ecx, dword [ebp - 0x18]
mov edx, esi
add ebx, esi
adc dword [ebp - 0x1c], edi
shld edx, edi, 0x10
shrd esi, edi, 0x10
mov edi, dword [ebp - 0x18]
xor edx, ebx
xor esi, dword [ebp - 0x1c]
add dword [ebp - 0x14], edx
mov dword [ebp - 0x20], edx
adc edi, esi
shrd edx, esi, 0xb
shld dword [ebp - 0x20], esi, 0x15
mov esi, dword [ebp - 0x14]
xor edx, edi
mov dword [ebp - 0x24], edx
xor dword [ebp - 0x20], esi
add ebx, ecx
adc dword [ebp - 0x1c], eax
mov edx, ebx
mov ebx, ecx
shrd ecx, eax, 0xf
xor esi, dword [ebp - 0x38]
xor edi, dword [ebp - 0x40]
shld ebx, eax, 0x11
mov eax, dword [ebp - 0x1c]
xor ebx, edx
xor ecx, eax
xor eax, 0xff
add esi, ebx
mov dword [ebp - 0x1c], eax
mov eax, ebx
adc edi, ecx
shrd ebx, ecx, 0x13
mov dword [ebp - 0x14], esi
shld eax, ecx, 0xd
mov dword [ebp - 0x18], edi
xor ebx, edi
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
xor eax, esi
mov esi, dword [ebp - 0x1c]
add esi, edi
adc edx, ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], edx
mov edx, edi
shrd edi, ecx, 0x10
shld edx, ecx, 0x10
xor edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
xor edx, esi
add dword [ebp - 0x18], edx
mov esi, edx
adc ecx, edi
shld esi, edi, 0x15
shrd edx, edi, 0xb
mov edi, dword [ebp - 0x10]
xor edx, ecx
xor esi, dword [ebp - 0x18]
add dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], ecx
mov ecx, eax
adc edi, ebx
shld ecx, ebx, 0x11
shrd eax, ebx, 0xf
mov ebx, dword [ebp - 0x18]
xor ecx, dword [ebp - 0x1c]
xor eax, edi
mov dword [ebp - 0x10], edi
add ebx, ecx
mov edi, ecx
adc dword [ebp - 0x14], eax
shld edi, eax, 0xd
shrd ecx, eax, 0x13
mov dword [ebp - 0x18], ebx
mov eax, edi
xor ecx, dword [ebp - 0x14]
mov edi, esi
xor eax, ebx
add dword [ebp - 0x10], esi
mov ebx, dword [ebp - 0x1c]
adc ebx, edx
shld edi, edx, 0x10
shrd esi, edx, 0x10
mov edx, dword [ebp - 0x18]
xor edi, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ebx
xor esi, ebx
mov ebx, dword [ebp - 0x14]
add ebx, edi
mov dword [ebp - 0x20], edi
adc edx, esi
shrd edi, esi, 0xb
shld dword [ebp - 0x20], esi, 0x15
mov esi, dword [ebp - 0x10]
xor dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ebx
mov ebx, eax
xor edi, edx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x1c]
add esi, eax
adc edx, ecx
shrd eax, ecx, 0xf
shld ebx, ecx, 0x11
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], edx
xor eax, edx
mov edx, dword [ebp - 0x14]
xor ebx, esi
mov esi, dword [ebp - 0x18]
mov ecx, ebx
add edx, ebx
adc esi, eax
shld ecx, eax, 0xd
shrd ebx, eax, 0x13
xor ecx, edx
mov edx, dword [ebp - 0x20]
xor ebx, esi
mov esi, dword [ebp - 0x10]
add dword [ebp - 0x1c], edx
mov eax, edx
adc esi, edi
shrd edx, edi, 0x10
shld eax, edi, 0x10
mov edi, dword [ebp - 0x1c]
xor edx, esi
xor eax, edi
shld eax, edx, 0x15
add edi, ecx
adc esi, ebx
shrd ebx, ecx, 0xf
xor ebx, eax
xor ebx, esi
xor ebx, edi
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0x18], ebx
mov edx, edi
and edx, ebx
mov ebx, dword [ebp - 0xa0]
mov eax, edx
movdqu xmm0, xmmword [ebx + edx]
pmovmskb ecx, xmm0
test ecx, ecx
jne 0x57ac34
mov esi, 0x10
mov eax, edx
nop word cs:[eax + eax]
add eax, esi
add esi, 0x10
and eax, edi
movdqu xmm0, xmmword [ebx + eax]
pmovmskb ecx, xmm0
test ecx, ecx
je 0x57ac20
bsf cx, cx
movzx ecx, cx
add ecx, eax
and ecx, edi
cmp byte [ebx + ecx], 0
js 0x57ac54
movdqa xmm0, xmmword [ebx]
pmovmskb eax, xmm0
bsf ax, ax
movzx ecx, ax
mov eax, dword [ebp - 0x60]
mov esi, ecx
sub esi, edx
sub eax, edx
xor esi, eax
and esi, edi
cmp esi, 0x10
jb 0x57a4f0
mov al, byte [ebx + ecx]
lea edx, [ecx - 0x10]
and edx, edi
mov byte [ebp - 0x14], al
mov eax, dword [ebp - 0x18]
shr eax, 0x19
cmp byte [ebp - 0x14], 0xff
mov byte [ebx + ecx], al
mov byte [edx + ebx + 0x10], al
je 0x57ace0
not ecx
mov edx, dword [ebp - 0x6c]
shl ecx, 4
movsd xmm0, qword [ebx + ecx]
movsd xmm1, qword [ebx + ecx + 8]
movsd qword [ebp - 0x94], xmm1
movsd qword [ebp - 0x9c], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [ebx + ecx + 8], xmm1
movsd qword [ebx + ecx], xmm0
movq xmm0, qword [ebp - 0x9c]
movq xmm1, qword [ebp - 0x94]
movq qword [edx + 8], xmm1
movq qword [edx], xmm0
jmp 0x57a540
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x6c]
not ecx
shl ecx, 4
lea eax, [edx - 0x10]
mov byte [ebx + edx], 0xff
and eax, edi
mov byte [eax + ebx + 0x10], 0xff
mov eax, edx
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
movq qword [ebx + ecx + 8], xmm1
movq qword [ebx + ecx], xmm0
jmp 0x57a507
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x40]
test edi, edi
mov dword [eax], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ecx], 0
je 0x57a2c7
mov eax, dword [ebp - 0x44]
mul dword [ebp - 0x48]
lea ecx, [esi + eax - 1]
mov eax, esi
neg eax
and eax, ecx
add edi, eax
cmp edi, 0xffffffef
je 0x57a2c7
mov ecx, dword [ebp - 0x54]
sub ecx, eax
cmp esi, 9
jb 0x57ad64
mov ecx, dword [ecx - 4]
push ecx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x57a2c7
call fcn.0049fcd0
ud2