Function at 0x164c6a210
Capabilities:
Encode data using xor
Hash data with md5

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x1110]
mov eax, 0x1210
call fcn.164c8fe00
sub rsp, rax
mov rax, qword [0x164cb3008]
xor rax, rsp
mov qword [rbp + 0x10f0], rax
mov ebx, dword [rbp + 0x1178]
xor r15d, r15d
mov rsi, qword [rbp + 0x1150]
mov r14d, dword [rbp + 0x1158]
mov r12, qword [rbp + 0x1160]
mov rdi, qword [rbp + 0x1168]
cmp ebx, 0x80000100
jbe 0x164c6a481
mov r8d, r14d
mov qword [rbp + 0x1000], r15
mov rdx, rsi
mov dword [rbp + 0xff0], 0x67452301
lea rcx, [rbp + 0xff0]
mov dword [rbp + 0xff4], 0xefcdab89
mov dword [rbp + 0xff8], 0x98badcfe
mov dword [rbp + 0xffc], 0x10325476
call sym.aswCmnIS.dll_md5Update
mov rdx, qword [rbp + 0x1000]
mov ecx, 0x78
mov qword [rbp + 0x1060], rdx
mov r8d, 0x38
shr edx, 3
and edx, 0x3f
sub ecx, edx
sub r8d, edx
cmp edx, 0x38
lea rdx, [0x164ca4420]
cmovae r8d, ecx
lea rcx, [rbp + 0xff0]
call sym.aswCmnIS.dll_md5Update
lea r8d, [r15 + 8]
lea rdx, [rbp + 0x1060]
lea rcx, [rbp + 0xff0]
call sym.aswCmnIS.dll_md5Update
movaps xmm0, xmmword [rbp + 0xff0]
movups xmmword [rbp + 0xfd0], xmm0
cmp ebx, 0x80000120
jbe 0x164c6a463
mov eax, dword [rbp + 0x1180]
test al, 2
je 0x164c6a354
xor ecx, ecx
mov qword [rbp + 0xfd5], rcx
mov word [rbp + 0xfdd], cx
mov byte [rbp + 0xfdf], cl
test al, 4
je 0x164c6a43c
mov esi, dword [rbp + 0x1170]
cmp r12, rdi
je 0x164c6a375
mov r8d, esi
mov rdx, r12
mov rcx, rdi
call fcn.164c8fe50
lea rdx, [rbp + 0xff0]
lea rcx, [rbp + 0xfd0]
call fcn.164c6c3f0
lea rdx, [rbp + 0x1080]
lea rcx, [rbp + 0xff0]
call fcn.164c6c870
lea r8, [rbp + 0xff0]
mov qword [rbp + 0x1060], 0xffffffffffffffff
lea rdx, [rbp + 0x1060]
lea rcx, [rbp + 0x1060]
lea rbx, [rbp + 0x1060]
lea r14, [rbp + 0xfd0]
call fcn.164c6ce20
cmp esi, 8
jb 0x164c6a417
mov r15, rsi
shr r15, 3
nop word [rax + rax]
mov rax, qword [rdi]
lea r8, [rbp + 0x1080]
xor rax, qword [rbx]
mov rdx, rdi
mov rcx, rdi
mov qword [r14], rax
call fcn.164c6ce20
mov rax, qword [rbx]
add esi, 0xfffffff8
xor qword [rdi], rax
mov rax, rbx
add rdi, 8
mov rbx, r14
mov r14, rax
sub r15, 1
jne 0x164c6a3e0
test esi, esi
je 0x164c6a9c0
lea r8, [rbp + 0xff0]
mov rdx, rbx
mov rcx, rbx
call fcn.164c6ce20
mov rdx, rbx
mov rcx, rdi
jmp 0x164c6a9ad
mov eax, dword [rbp + 0x1170]
lea rcx, [rbp + 0xfd0]
mov r9, rdi
mov qword [rsp + 0x20], rax
mov r8, r12
mov edx, 0x10
call sym.aswCmnIS.dll_RC4DecryptBuffer
jmp 0x164c6a9c0
mov r9d, dword [rbp + 0x1170]
lea r8, [rbp + 0xfd0]
mov rdx, rdi
mov rcx, r12
call fcn.164c77120
jmp 0x164c6a9c0
test byte [rbp + 0x1180], 1
mov edx, r15d
je 0x164c6a6b6
mov dword [rbp + 0xff8], 0x67452301
mov dword [rbp + 0xffc], 0xefcdab89
mov dword [rbp + 0x1000], 0x98badcfe
mov dword [rbp + 0x1004], 0x10325476
mov qword [rbp + 0xff0], r15
mov dword [rbp + 0x1008], edx
test rsi, rsi
je 0x164c6a57d
test r14, r14
je 0x164c6a57d
test edx, edx
jne 0x164c6a50c
cmp r14, 0x40
jb 0x164c6a50c
mov rdx, rsi
lea rcx, [rbp + 0xff0]
call fcn.164c6d8f0
add qword [rbp + 0xff0], 0x200
add rsi, 0x40
mov edx, dword [rbp + 0x1008]
sub r14, 0x40
jmp 0x164c6a574
mov ecx, 0x40
mov eax, edx
sub ecx, edx
mov rbx, r14
cmp r14, rcx
mov rdx, rsi
cmovae rbx, rcx
lea rcx, [rbp + 0x100c]
add rcx, rax
mov r8, rbx
call fcn.164c8fe50
mov edx, dword [rbp + 0x1008]
add rsi, rbx
add edx, ebx
sub r14, rbx
mov dword [rbp + 0x1008], edx
cmp edx, 0x40
jne 0x164c6a574
lea rdx, [rbp + 0x100c]
lea rcx, [rbp + 0xff0]
call fcn.164c6d8f0
add qword [rbp + 0xff0], 0x200
mov edx, r15d
mov dword [rbp + 0x1008], edx
test r14, r14
jne 0x164c6a4d8
cmp edx, 0x40
jae 0x164c6a645
mov eax, edx
lea ecx, [rdx*8]
add qword [rbp + 0xff0], rcx
mov byte [rbp + rax + 0x100c], 0x80
mov eax, dword [rbp + 0x1008]
inc eax
mov dword [rbp + 0x1008], eax
cmp eax, 0x38
jbe 0x164c6a5fa
cmp eax, 0x40
jae 0x164c6a5db
nop word [rax + rax]
mov byte [rbp + rax + 0x100c], r15b
mov eax, dword [rbp + 0x1008]
inc eax
mov dword [rbp + 0x1008], eax
cmp eax, 0x40
jb 0x164c6a5c0
lea rdx, [rbp + 0x100c]
lea rcx, [rbp + 0xff0]
call fcn.164c6d8f0
mov eax, r15d
mov dword [rbp + 0x1008], r15d
jmp 0x164c6a600
jae 0x164c6a61d
nop dword [rax]
mov ecx, eax
mov byte [rbp + rcx + 0x100c], r15b
mov eax, dword [rbp + 0x1008]
inc eax
mov dword [rbp + 0x1008], eax
cmp eax, 0x38
jb 0x164c6a600
mov rax, qword [rbp + 0xff0]
lea rdx, [rbp + 0x100c]
lea rcx, [rbp + 0xff0]
mov qword [rbp + 0x1044], rax
call fcn.164c6d8f0
mov dword [rbp + 0x1008], r15d
mov eax, dword [rbp + 0xff8]
lea r9, [rsp + 0x30]
mov dword [rbp + 0xfd0], eax
lea rcx, [rbp + 0xfd0]
mov eax, dword [rbp + 0xffc]
xor r8d, r8d
mov dword [rbp + 0xfd4], eax
mov eax, dword [rbp + 0x1000]
mov dword [rbp + 0xfd8], eax
mov eax, dword [rbp + 0x1004]
lea edx, [r8 + 0x10]
mov qword [rsp + 0x28], r15
mov dword [rbp + 0xfdc], eax
mov dword [rsp + 0x20], 0x10
call sym.aswCmnIS.dll_blowfish_setup
mov r9d, dword [rbp + 0x1170]
lea r8, [rsp + 0x30]
mov rdx, rdi
mov rcx, r12
call sym.aswCmnIS.dll_blowfish_decrypt_cbc
jmp 0x164c6a9c0
mov dword [rbp + 0x1010], edx
movabs rax, 0x123456789abcdef
mov qword [rbp + 0xff0], rax
movabs rax, 0xfedcba9876543210
mov qword [rbp + 0xff8], rax
movabs rax, 0xf096a5b4c3b2e187
mov qword [rbp + 0x1000], rax
mov qword [rbp + 0x1008], r15
test rsi, rsi
je 0x164c6a7ac
test r14d, r14d
je 0x164c6a7ac
test edx, edx
jne 0x164c6a73c
cmp r14d, 0x40
jb 0x164c6a73c
mov rdx, rsi
lea rcx, [rbp + 0xff0]
call fcn.164c77810
add qword [rbp + 0x1008], 0x200
add rsi, 0x40
mov edx, dword [rbp + 0x1010]
add r14d, 0xffffffc0
jmp 0x164c6a7a3
mov eax, edx
mov ecx, 0x40
sub ecx, edx
mov ebx, r14d
cmp r14d, ecx
mov rdx, rsi
cmovae ebx, ecx
lea rcx, [rbp + 0x1014]
add rcx, rax
mov r8d, ebx
call fcn.164c8fe50
mov edx, dword [rbp + 0x1010]
add rsi, rbx
add edx, ebx
sub r14d, ebx
mov dword [rbp + 0x1010], edx
cmp edx, 0x40
jne 0x164c6a7a3
lea rdx, [rbp + 0x1014]
lea rcx, [rbp + 0xff0]
call fcn.164c77810
add qword [rbp + 0x1008], 0x200
mov edx, r15d
mov dword [rbp + 0x1010], edx
test r14d, r14d
jne 0x164c6a708
cmp edx, 0x40
jae 0x164c6a89c
mov eax, edx
lea ecx, [rdx*8]
add qword [rbp + 0x1008], rcx
mov byte [rbp + rax + 0x1014], 1
mov eax, dword [rbp + 0x1010]
inc eax
mov dword [rbp + 0x1010], eax
cmp eax, 0x38
jbe 0x164c6a827
cmp eax, 0x40
jae 0x164c6a80b
nop word [rax + rax]
mov byte [rbp + rax + 0x1014], r15b
mov eax, dword [rbp + 0x1010]
inc eax
mov dword [rbp + 0x1010], eax
cmp eax, 0x40
jb 0x164c6a7f0
lea rdx, [rbp + 0x1014]
lea rcx, [rbp + 0xff0]
call fcn.164c77810
mov dword [rbp + 0x1010], r15d
jmp 0x164c6a830
mov r15d, eax
jae 0x164c6a851
nop dword [rax]
mov eax, r15d
mov byte [rbp + rax + 0x1014], 0
mov eax, dword [rbp + 0x1010]
inc eax
mov dword [rbp + 0x1010], eax
mov r15d, eax
cmp eax, 0x38
jb 0x164c6a830
mov rax, qword [rbp + 0x1008]
lea rdx, [rbp + 0x1014]
lea rcx, [rbp + 0xff0]
mov qword [rbp + 0x104c], rax
call fcn.164c77810
mov rax, qword [rbp + 0xff0]
mov qword [rbp + 0xfd0], rax
mov rax, qword [rbp + 0xff8]
mov qword [rbp + 0xfd8], rax
mov rax, qword [rbp + 0x1000]
mov qword [rbp + 0xfe0], rax
lea r9, [rsp + 0x30]
lea rcx, [rbp + 0xfd0]
call fcn.164c78740
movdqa xmm0, xmmword [0x164cadee0]
lea r8, [rsp + 0x30]
mov esi, dword [rbp + 0x1170]
lea rdx, [rbp + 0x1070]
lea rcx, [rbp + 0x1070]
movups xmmword [rbp + 0x1070], xmm0
lea rbx, [rbp + 0x1070]
lea r14, [rbp + 0xfd0]
call fcn.164c790b0
cmp esi, 0x10
jb 0x164c6a978
mov qword [rsp + 0x1208], r13
mov r15d, esi
mov r13, r12
sub r13, rdi
shr r15, 4
nop word [rax + rax]
mov rax, qword [rbx]
lea r8, [rsp + 0x30]
xor rax, qword [r12]
mov rdx, rdi
mov qword [r14], rax
mov rcx, r12
mov rax, qword [rdi + r13 + 8]
xor rax, qword [rbx + 8]
mov qword [r14 + 8], rax
call fcn.164c79500
mov rax, qword [rbx]
add r12, 0x10
xor qword [rdi], rax
add esi, 0xfffffff0
mov rax, qword [rbx + 8]
xor qword [rdi + 8], rax
mov rax, rbx
add rdi, 0x10
mov rbx, r14
mov r14, rax
sub r15, 1
jne 0x164c6a910
mov r13, qword [rsp + 0x1208]
lea rax, [rbp + 0x1070]
cmp rbx, rax
je 0x164c6a978
movups xmm0, xmmword [rbx]
jmp 0x164c6a97f
movaps xmm0, xmmword [rbp + 0x1070]
test esi, esi
je 0x164c6a9c0
lea r8, [rsp + 0x30]
movdqa xmmword [rbp + 0xfd0], xmm0
lea rdx, [rbp + 0xfd0]
lea rcx, [rbp + 0xfd0]
call fcn.164c790b0
mov rdx, r12
lea rcx, [rbp + 0xfd0]
mov r9, rdi
mov r8d, esi
call fcn.164c61c60
nop dword [rax + rax]
mov rcx, qword [rbp + 0x10f0]
xor rcx, rsp
call fcn.164c8ef00
add rsp, 0x1210
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret