Function at 0x10002170
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, eax
and esp, 0xfffffff0
sub esp, 0x180
movzx eax, byte [eax + 7]
mov dword [esp], ecx
shr al, 7
mov word [esp + 6], dx
mov edx, 1
mov byte [esp + 0x10], al
lea esi, [esi]
movzx eax, byte [edx + str.80_]
mov ecx, eax
shr eax, 3
and ecx, 7
movzx eax, byte [ebx + eax]
mov ecx, dword [ecx*4 + 0x10028d20]
and eax, ecx
cmp eax, ecx
sete byte [esp + edx + 0x10]
add edx, 1
cmp edx, 0x38
jne 0x100021a0
mov dword [esp + 0xc], 0
nop
lea esi, [esi]
mov eax, dword [esp + 0xc]
cmp word [esp + 6], 1
lea esi, [eax + eax]
jne 0x100021ed
neg eax
lea esi, [eax + eax + 0x1e]
mov eax, dword [esp + 0xc]
lea edi, [esi + 1]
lea ecx, [esp + 0x48]
mov dword [esp + edi*4 + 0x80], 0
movzx ebx, byte [eax + 0x10028c70]
mov dword [esp + esi*4 + 0x80], 0
mov dword [esp + 8], ebx
lea eax, [ebx + 0x1c]
mov edx, ebx
sub ecx, ebx
jmp 0x10002237
movzx ebx, byte [esp + edx + 0x10]
mov byte [ecx + edx], bl
add edx, 1
cmp edx, eax
je 0x1000224b
cmp edx, 0x1b
jbe 0x10002228
movzx ebx, byte [esp + edx - 0xc]
mov byte [ecx + edx], bl
add edx, 1
cmp edx, eax
jne 0x10002237
mov ebx, dword [esp + 8]
add ebx, 0x38
jmp 0x10002267
movzx edx, byte [esp + eax + 0x10]
mov byte [ecx + eax], dl
add eax, 1
cmp eax, ebx
je 0x1000227b
cmp eax, 0x37
jbe 0x10002258
movzx edx, byte [esp + eax - 0xc]
mov byte [ecx + eax], dl
add eax, 1
cmp eax, ebx
jne 0x10002267
xor eax, eax
lea esi, [esi]
movzx edx, byte [eax + 0x10028c40]
cmp byte [esp + edx + 0x48], 0
je 0x1000229c
mov edx, dword [eax*4 + 0x10028cc0]
or dword [esp + esi*4 + 0x80], edx
movzx edx, byte [eax + 0x10028c58]
cmp byte [esp + edx + 0x48], 0
je 0x100022b8
mov edx, dword [eax*4 + 0x10028cc0]
or dword [esp + edi*4 + 0x80], edx
add eax, 1
cmp eax, 0x18
jne 0x10002280
add dword [esp + 0xc], 1
mov eax, dword [esp + 0xc]
cmp eax, 0x10
jne 0x100021d8
lea esi, [esp + 0x100]
lea edx, [esp + 0x80]
movdqu xmm7, xmmword [0x10028d40]
movdqu xmm6, xmmword [0x10028d50]
movdqu xmm5, xmmword [str.____]
mov eax, esi
lea ecx, [esp + 0x180]
movdqu xmm0, xmmword [edx]
shufps xmm0, xmmword [edx + 0x10], 0x88
movdqu xmm3, xmm0
add eax, 0x20
movdqu xmm1, xmm0
pslld xmm3, 0xa
movdqu xmm2, xmmword [edx]
add edx, 0x20
pslld xmm1, 6
pand xmm3, xmm7
shufps xmm2, xmmword [edx - 0x10], 0xdd
movdqu xmm4, xmm2
pand xmm1, xmm6
psrld xmm4, 0xa
pand xmm4, xmmword [0x10028d70]
por xmm3, xmm1
movdqu xmm1, xmm2
psrld xmm1, 6
pand xmm1, xmm5
por xmm1, xmm4
por xmm1, xmm3
movdqu xmm3, xmm0
pslld xmm3, 0x10
pslld xmm0, 0xc
pand xmm3, xmm7
pand xmm0, xmm6
por xmm0, xmm3
movdqu xmm3, xmm2
pand xmm2, xmm5
psrld xmm3, 4
pand xmm3, xmmword [0x10028d70]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmm1
punpckldq xmm0, xmm2
punpckhdq xmm1, xmm2
movups xmmword [eax - 0x20], xmm0
movups xmmword [eax - 0x10], xmm1
cmp eax, ecx
jne 0x10002301
mov edi, dword [esp]
mov eax, dword [esp + 0x100]
mov dword [edi], eax
mov eax, dword [esp + 0x17c]
mov dword [edi + 0x7c], eax
mov eax, edi
lea edi, [edi + 4]
and edi, 0xfffffffc
sub eax, edi
mov ecx, eax
sub esi, eax
sub ecx, 0xffffff80
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret