Function at 0x1400166a0
Capabilities:
Accept command line arguments
Hash data with md5

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x140081040]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov r13, rcx
mov qword [rsp + 0x40], rcx
xor r15d, r15d
mov qword [rcx], r15
mov qword [rcx + 8], r15
mov qword [rcx + 0x10], r15
lea rdi, [rcx + 0x18]
mov qword [rsp + 0x20], rdi
mov qword [rdi], r15
mov qword [rdi + 8], r15
mov ecx, 0x50
call fcn.140032d08
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rdi], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r15
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [rsp + 0x20], r15d
lea rdx, [rsp + 0x20]
mov rcx, rax
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov rsi, rax
test rax, rax
jne 0x140016847
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x140016814
mov rdi, qword [rsp + 0x30]
cmp rbx, rdi
je 0x1400167cd
nop word [rax + rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 7
jbe 0x1400167af
mov rcx, qword [rbx]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400167aa
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140017113
mov rcx, r8
call fcn.140032d00
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], 7
mov word [rbx], r15w
add rbx, 0x20
cmp rbx, rdi
jne 0x140016770
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x1400167fe
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017113
mov rcx, rbx
call fcn.140032d00
xorps xmm0, xmm0
mov qword [rsp + 0x38], r15
movdqu xmmword [rsp + 0x28], xmm0
mov rax, r13
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.140032ce0
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ebx, 1
cmp dword [rsp + 0x20], ebx
jle 0x1400169d2
lea rdi, [rax + 8]
nop word [rax + rax]
mov rdx, qword [rdi]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140016870
lea r8, [rax + rax]
cmp rax, 0x200
cmovae r8, r15
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], r15
mov qword [rbp + 0x48], r15
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400168a0
cmp rax, r8
cmovb r8, rax
lea rcx, [rbp + 0x30]
call fcn.1400058f0
nop
cmp qword [rbp + 0x40], 0
je 0x14001696d
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x70]
call fcn.1400158d0
nop
lea rcx, [rbp + 0x70]
call fcn.140015d80
test al, al
jne 0x140016913
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0x38]
je 0x140016901
lea rdx, [rbp + 0x70]
mov rcx, rax
call fcn.140004880
add qword [rsp + 0x30], 0x20
jmp 0x140016913
lea r8, [rbp + 0x70]
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.140014710
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 7
jbe 0x140016956
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016951
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017119
call fcn.140032d00
mov qword [rbp + 0x80], r15
mov qword [rbp + 0x88], 7
mov word [rbp + 0x70], r15w
mov rdx, qword [rbp + 0x48]
cmp rdx, 7
jbe 0x1400169ad
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x30]
cmp rdx, 0x1000
mov rax, rcx
jb 0x1400169a8
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001711f
call fcn.140032d00
mov qword [rbp + 0x40], r15
mov qword [rbp + 0x48], 7
mov word [rbp + 0x30], r15w
inc ebx
add rdi, 8
cmp ebx, dword [rsp + 0x20]
jl 0x140016860
lea rdi, [r13 + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], 7
mov word [rsp + 0x48], r15w
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x68]
call fcn.140004880
nop
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov rsi, qword [rsp + 0x28]
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
cmp rsi, rax
je 0x140016f7d
mov rcx, rsi
call fcn.140016210
mov rdi, qword [rsp + 0x78]
test al, al
je 0x140016c9b
test rdi, rdi
je 0x140016c6d
lea r15, [rsp + 0x68]
cmp qword [rbp - 0x80], 7
cmova r15, qword [rsp + 0x68]
add rdi, rdi
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
mov dword [rbp + 0x10], 0x67452301
mov dword [rbp + 0x14], 0xefcdab89
mov dword [rbp + 0x18], 0x98badcfe
mov dword [rbp + 0x1c], 0x10325476
xor ecx, ecx
mov r9d, ecx
mov qword [rbp + 0x20], rcx
mov eax, ecx
mov dword [rbp + 0x28], eax
mov byte [rbp + 0x2c], cl
mov ebx, ecx
cmp rdi, 0x40
jb 0x140016ae1
nop dword [rax]
movsxd rdx, ebx
add rdx, r15
lea rcx, [rbp - 0x70]
call fcn.140014c40
add ebx, 0x40
lea ecx, [rbx + 0x40]
cmp rcx, rdi
jbe 0x140016ac0
mov eax, dword [rbp + 0x28]
mov r9, qword [rbp + 0x20]
movsxd rcx, ebx
cmp rcx, rdi
je 0x140016b15
mov r8, rdi
sub r8, rcx
lea rdx, [r15 + rcx]
lea rcx, [rbp - 0x70]
add rcx, rax
call fcn.140057c40
sub edi, ebx
mov r8d, dword [rbp + 0x28]
add r8d, edi
mov dword [rbp + 0x28], r8d
mov r9, qword [rbp + 0x20]
xor r15d, r15d
jmp 0x140016b1f
xor r15d, r15d
mov r8d, r15d
mov dword [rbp + 0x28], r15d
cmp byte [rbp + 0x2c], 0
jne 0x140016bd1
mov ecx, r8d
add r9, rcx
mov qword [rbp + 0x20], r9
mov eax, 0x38
sub eax, r8d
lea ebx, [rax + 0x40]
test eax, eax
cmovg ebx, eax
test ebx, ebx
jle 0x140016b79
mov byte [rbp + rcx - 0x70], 0x80
cmp ebx, 1
jle 0x140016b6a
lea eax, [rbx - 1]
movsxd r8, eax
mov ecx, dword [rbp + 0x28]
inc ecx
lea rax, [rbp - 0x70]
add rcx, rax
xor edx, edx
call fcn.1400583d0
mov r8d, dword [rbp + 0x28]
add r8d, ebx
mov dword [rbp + 0x28], r8d
mov r9, qword [rbp + 0x20]
mov rdx, r9
shr rdx, 0x20
lea ecx, [r9*8]
mov eax, r8d
mov dword [rbp + rax - 0x70], ecx
mov eax, dword [rbp + 0x28]
add eax, 4
mov dword [rbp + 0x28], eax
mov ecx, eax
shr r9d, 0x1d
lea eax, [rdx*8]
or r9d, eax
mov dword [rbp + rcx - 0x70], r9d
add dword [rbp + 0x28], 4
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x70]
call fcn.140014c40
cmp dword [rbp + 0x28], 0x40
jbe 0x140016bd1
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x70]
call fcn.140014c40
mov eax, dword [rbp + 0x10]
mov dword [rbp + 0x50], eax
mov eax, dword [rbp + 0x14]
mov dword [rbp + 0x54], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x1c]
mov dword [rbp + 0x5c], eax
movaps xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0xa0], xmm0
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0x70]
lea rcx, [r13 + 0x18]
call fcn.1400177b0
mov rcx, qword [rax]
add rcx, 0x30
lea rax, [rsp + 0x48]
cmp rcx, rax
je 0x140016c6d
lea r9, [rsp + 0x48]
cmp r12, 7
cmova r9, qword [rsp + 0x48]
mov rax, qword [rcx + 0x18]
cmp r14, rax
ja 0x140016c5b
mov rdi, rcx
cmp rax, 7
jbe 0x140016c3e
mov rdi, qword [rcx]
mov qword [rcx + 0x10], r14
lea rbx, [r14 + r14]
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.140057c40
mov word [rbx + rdi], r15w
jmp 0x140016c6d
mov rdx, r14
call fcn.140005790
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
lea rax, [rsp + 0x68]
cmp rax, rsi
je 0x140016f64
mov rdx, rsi
cmp qword [rsi + 0x18], 7
jbe 0x140016c88
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
lea rcx, [rsp + 0x68]
call fcn.1400047a0
jmp 0x140016f64
test rdi, rdi
je 0x140016ede
lea r15, [rsp + 0x68]
cmp qword [rbp - 0x80], 7
cmova r15, qword [rsp + 0x68]
add rdi, rdi
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
mov dword [rbp + 0x10], 0x67452301
mov dword [rbp + 0x14], 0xefcdab89
mov dword [rbp + 0x18], 0x98badcfe
mov dword [rbp + 0x1c], 0x10325476
xor edx, edx
mov r9d, edx
mov qword [rbp + 0x20], rdx
mov eax, edx
mov dword [rbp + 0x28], eax
mov byte [rbp + 0x2c], dl
mov ebx, edx
cmp rdi, 0x40
jb 0x140016d33
nop
movsxd rdx, ebx
add rdx, r15
lea rcx, [rbp - 0x70]
call fcn.140014c40
add ebx, 0x40
lea ecx, [rbx + 0x40]
cmp rcx, rdi
jbe 0x140016d10
mov eax, dword [rbp + 0x28]
mov r9, qword [rbp + 0x20]
xor edx, edx
movsxd rcx, ebx
cmp rcx, rdi
je 0x140016d64
mov r8, rdi
sub r8, rcx
lea rdx, [rcx + r15]
lea rcx, [rbp - 0x70]
add rcx, rax
call fcn.140057c40
sub edi, ebx
mov r8d, dword [rbp + 0x28]
add r8d, edi
mov dword [rbp + 0x28], r8d
mov r9, qword [rbp + 0x20]
jmp 0x140016d6a
mov r8d, edx
mov dword [rbp + 0x28], edx
cmp byte [rbp + 0x2c], 0
jne 0x140016e1c
mov ecx, r8d
add r9, rcx
mov qword [rbp + 0x20], r9
mov eax, 0x38
sub eax, r8d
lea ebx, [rax + 0x40]
test eax, eax
cmovg ebx, eax
test ebx, ebx
jle 0x140016dc4
mov byte [rbp + rcx - 0x70], 0x80
cmp ebx, 1
jle 0x140016db5
lea eax, [rbx - 1]
movsxd r8, eax
mov ecx, dword [rbp + 0x28]
inc ecx
lea rax, [rbp - 0x70]
add rcx, rax
xor edx, edx
call fcn.1400583d0
mov r8d, dword [rbp + 0x28]
add r8d, ebx
mov dword [rbp + 0x28], r8d
mov r9, qword [rbp + 0x20]
mov rdx, r9
shr rdx, 0x20
lea ecx, [r9*8]
mov eax, r8d
mov dword [rbp + rax - 0x70], ecx
mov eax, dword [rbp + 0x28]
add eax, 4
mov dword [rbp + 0x28], eax
mov ecx, eax
shr r9d, 0x1d
lea eax, [rdx*8]
or r9d, eax
mov dword [rbp + rcx - 0x70], r9d
add dword [rbp + 0x28], 4
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x70]
call fcn.140014c40
cmp dword [rbp + 0x28], 0x40
jbe 0x140016e1c
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x70]
call fcn.140014c40
mov eax, dword [rbp + 0x10]
mov dword [rbp + 0x60], eax
mov eax, dword [rbp + 0x14]
mov dword [rbp + 0x64], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x68], eax
mov eax, dword [rbp + 0x1c]
mov dword [rbp + 0x6c], eax
movaps xmm0, xmmword [rbp + 0x60]
movdqa xmmword [rbp + 0x90], xmm0
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x30]
lea rdi, [r13 + 0x18]
mov rcx, rdi
call fcn.1400177b0
mov rcx, qword [rax]
add rcx, 0x30
cmp rcx, rsi
je 0x140016e79
mov rdx, rsi
cmp qword [rsi + 0x18], 7
jbe 0x140016e70
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
call fcn.1400047a0
lea r9, [rsp + 0x48]
cmp r12, 7
cmova r9, qword [rsp + 0x48]
mov rax, qword [rbp - 0x80]
cmp r14, rax
ja 0x140016ec2
lea rdi, [rsp + 0x68]
cmp rax, 7
cmova rdi, qword [rsp + 0x68]
mov qword [rsp + 0x78], r14
lea rbx, [r14 + r14]
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.140057c40
xor ecx, ecx
mov word [rbx + rdi], cx
jmp 0x140016f64
mov rdx, r14
lea rcx, [rsp + 0x68]
call fcn.140005790
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
jmp 0x140016f68
mov rax, qword [r13 + 8]
cmp rax, qword [r13 + 0x10]
je 0x140016efa
mov rdx, rsi
mov rcx, rax
call fcn.140004880
add qword [r13 + 8], 0x20
jmp 0x140016f08
mov r8, rsi
mov rdx, rax
mov rcx, r13
call fcn.140014710
lea r9, [rsp + 0x48]
cmp r12, 7
cmova r9, qword [rsp + 0x48]
mov rax, qword [rbp - 0x80]
cmp r14, rax
ja 0x140016f4d
lea rdi, [rsp + 0x68]
cmp rax, 7
cmova rdi, qword [rsp + 0x68]
mov qword [rsp + 0x78], r14
lea rbx, [r14 + r14]
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.140057c40
mov word [rbx + rdi], r15w
jmp 0x140016f64
mov rdx, r14
lea rcx, [rsp + 0x68]
call fcn.140005790
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
lea rdi, [r13 + 0x18]
add rsi, 0x20
cmp rsi, qword [rsp + 0x20]
mov r15d, 0
jne 0x140016a33
cmp qword [rsp + 0x78], 0
je 0x140017013
lea rdx, [rsp + 0x68]
lea rcx, [rbp + 0x30]
call fcn.1400156f0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x90], xmm0
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x30]
mov rcx, rdi
call fcn.1400177b0
mov rcx, qword [rax]
add rcx, 0x30
lea rax, [rsp + 0x48]
cmp rcx, rax
je 0x140017013
lea r9, [rsp + 0x48]
cmp r12, 7
cmova r9, qword [rsp + 0x48]
mov rax, qword [rcx + 0x18]
cmp r14, rax
ja 0x140017006
mov rdi, rcx
cmp rax, 7
jbe 0x140016fe9
mov rdi, qword [rcx]
mov qword [rcx + 0x10], r14
lea rbx, [r14 + r14]
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.140057c40
mov word [rbx + rdi], r15w
jmp 0x140017013
mov rdx, r14
call fcn.140005790
mov r12, qword [rsp + 0x60]
mov rdx, qword [rbp - 0x80]
cmp rdx, 7
jbe 0x140017054
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001704f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017125
call fcn.140032d00
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], r15w
cmp r12, 7
jbe 0x1400170a0
lea rdx, [r12*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001709b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017107
call fcn.140032d00
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], 7
mov word [rsp + 0x48], r15w
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140016814
mov rdx, qword [rsp + 0x30]
call fcn.140005b40
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x28]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x140016801
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001710d
jmp 0x140016801
call fcn.14003e130
nop
call fcn.14003e130
int3
call fcn.14003e130
nop
call fcn.14003e130
nop
call fcn.14003e130
nop
call fcn.14003e130
int3