Function at 0x180029460
Capabilities:
Encrypt data using des

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x138
mov dword [rsp + 0x128], 0
jmp 0x18002948e
mov eax, dword [rsp + 0x128]
add eax, 1
mov dword [rsp + 0x128], eax
cmp dword [rsp + 0x128], 0x38
jge 0x18002952c
movsxd rcx, dword [rsp + 0x128]
lea rax, str.80_
movzx eax, byte [rax + rcx]
mov dword [rsp + 0x120], eax
mov eax, dword [rsp + 0x120]
and eax, 7
mov dword [rsp + 0x124], eax
mov eax, dword [rsp + 0x120]
sar eax, 3
movsxd rcx, eax
mov rax, qword [rsp + 0x140]
movzx edx, byte [rax + rcx]
movsxd rcx, dword [rsp + 0x124]
lea rax, [0x180071448]
movzx ecx, word [rax + rcx*2]
mov eax, edx
and eax, ecx
test eax, eax
je 0x180029508
mov dword [rsp + 0x12c], 1
jmp 0x180029513
mov dword [rsp + 0x12c], 0
movsxd rcx, dword [rsp + 0x128]
movzx eax, byte [rsp + 0x12c]
mov byte [rsp + rcx + 0x20], al
jmp 0x18002947d
mov dword [rsp + 0x94], 0
jmp 0x18002954a
mov eax, dword [rsp + 0x94]
add eax, 1
mov dword [rsp + 0x94], eax
cmp dword [rsp + 0x94], 0x10
jge 0x1800297bb
cmp dword [rsp + 0x148], 1
jne 0x180029579
mov eax, select
sub eax, dword [rsp + 0x94]
shl eax, 1
mov dword [rsp + 0x124], eax
jmp 0x180029589
mov eax, dword [rsp + 0x94]
shl eax, 1
mov dword [rsp + 0x124], eax
mov eax, dword [rsp + 0x124]
add eax, 1
mov dword [rsp + 0x90], eax
movsxd rax, dword [rsp + 0x90]
mov dword [rsp + rax*4 + 0xa0], 0
movsxd rax, dword [rsp + 0x124]
mov dword [rsp + rax*4 + 0xa0], 0
mov dword [rsp + 0x128], 0
jmp 0x1800295de
mov eax, dword [rsp + 0x128]
add eax, 1
mov dword [rsp + 0x128], eax
cmp dword [rsp + 0x128], 0x1c
jge 0x180029652
movsxd rcx, dword [rsp + 0x94]
lea rax, [0x1800714f0]
movzx ecx, byte [rax + rcx]
mov eax, dword [rsp + 0x128]
add eax, ecx
mov dword [rsp + 0x120], eax
cmp dword [rsp + 0x120], 0x1c
jge 0x180029630
movsxd rax, dword [rsp + 0x120]
movsxd rcx, dword [rsp + 0x128]
movzx eax, byte [rsp + rax + 0x20]
mov byte [rsp + rcx + 0x58], al
jmp 0x18002964d
mov eax, dword [rsp + 0x120]
sub eax, 0x1c
cdqe
movsxd rcx, dword [rsp + 0x128]
movzx eax, byte [rsp + rax + 0x20]
mov byte [rsp + rcx + 0x58], al
jmp 0x1800295cd
mov dword [rsp + 0x128], 0x1c
jmp 0x180029670
mov eax, dword [rsp + 0x128]
add eax, 1
mov dword [rsp + 0x128], eax
cmp dword [rsp + 0x128], 0x38
jge 0x1800296e4
movsxd rcx, dword [rsp + 0x94]
lea rax, [0x1800714f0]
movzx ecx, byte [rax + rcx]
mov eax, dword [rsp + 0x128]
add eax, ecx
mov dword [rsp + 0x120], eax
cmp dword [rsp + 0x120], 0x38
jge 0x1800296c2
movsxd rax, dword [rsp + 0x120]
movsxd rcx, dword [rsp + 0x128]
movzx eax, byte [rsp + rax + 0x20]
mov byte [rsp + rcx + 0x58], al
jmp 0x1800296df
mov eax, dword [rsp + 0x120]
sub eax, 0x1c
cdqe
movsxd rcx, dword [rsp + 0x128]
movzx eax, byte [rsp + rax + 0x20]
mov byte [rsp + rcx + 0x58], al
jmp 0x18002965f
mov dword [rsp + 0x128], 0
jmp 0x180029702
mov eax, dword [rsp + 0x128]
add eax, 1
mov dword [rsp + 0x128], eax
cmp dword [rsp + 0x128], 0x18
jge 0x1800297b6
movsxd rcx, dword [rsp + 0x128]
lea rax, [0x180071500]
movzx eax, byte [rax + rcx]
movzx eax, byte [rsp + rax + 0x58]
test eax, eax
je 0x18002975e
movsxd rdx, dword [rsp + 0x124]
movsxd rcx, dword [rsp + 0x128]
lea rax, [0x180071490]
mov eax, dword [rax + rcx*4]
mov ecx, dword [rsp + rdx*4 + 0xa0]
or ecx, eax
movsxd rax, dword [rsp + 0x124]
mov dword [rsp + rax*4 + 0xa0], ecx
mov eax, dword [rsp + 0x128]
add eax, 0x18
movsxd rcx, eax
lea rax, [0x180071500]
movzx eax, byte [rax + rcx]
movzx eax, byte [rsp + rax + 0x58]
test eax, eax
je 0x1800297b1
movsxd rdx, dword [rsp + 0x90]
movsxd rcx, dword [rsp + 0x128]
lea rax, [0x180071490]
mov eax, dword [rax + rcx*4]
mov ecx, dword [rsp + rdx*4 + 0xa0]
or ecx, eax
movsxd rax, dword [rsp + 0x90]
mov dword [rsp + rax*4 + 0xa0], ecx
jmp 0x1800296f1
jmp 0x180029539
lea rcx, [rsp + 0xa0]
call fcn.1800297d0
add rsp, 0x138
ret