Function at 0x180053680
Capabilities:
Hash data with md5

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x138
mov dword [rsp + 0x58], 0x67452301
mov dword [rsp + 0x5c], 0xefcdab89
mov dword [rsp + 0x60], 0x98badcfe
mov dword [rsp + 0x64], 0x10325476
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
add eax, 0x16c225f1
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov eax, 3
mov word [rsp + 0x20], ax
movsx rax, word [rsp + 0x20]
lea rcx, [0x18009af80]
cmp dword [rcx + rax*4], 1
jne 0x18005371b
movsx rax, word [rsp + 0x20]
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax*4]
inc eax
movsx rcx, word [rsp + 0x20]
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x148]
call fcn.180059ab0
test rax, rax
je 0x1800537b3
mov rax, qword [rsp + 0x38]
and rax, 0x3f
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
xor edx, edx
mov rcx, qword [rsp + 0x148]
call fcn.1800500c0
mov rcx, qword [rsp + 0x80]
mov byte [rsp + rcx + 0xb0], al
cmp qword [rsp + 0x80], 0x3f
jne 0x18005378f
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x58]
call fcn.180057310
mov dword [rsp + 0x50], SafeArrayGetDim
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov ecx, dword [rsp + 0x50]
movsxd rcx, ecx
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
jmp 0x180053724
mov rax, qword [rsp + 0x38]
and rax, 0x3f
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0x38
jae 0x1800537da
mov eax, 0x38
sub rax, qword [rsp + 0x30]
mov qword [rsp + 0x78], rax
jmp 0x1800537e9
mov eax, 0x78
sub rax, qword [rsp + 0x30]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x38]
shl rax, 3
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x74], 0
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xffffe645
mov ecx, 4
imul rcx, rcx, 1
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov rax, qword [rsp + 0x30]
mov byte [rsp + rax + 0xb0], 0x80
mov rax, qword [rsp + 0x30]
lea rax, [rsp + rax + 0xb0]
add rax, qword [rsp + 0x48]
mov r8d, 8
lea rdx, [rsp + 0x70]
mov rcx, rax
call fcn.180057110
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
add eax, 0x1303d28
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 2
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xffffe62f
mov ecx, 4
imul rcx, rcx, 2
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov rax, qword [rsp + 0x48]
dec rax
mov rcx, qword [rsp + 0x30]
lea rcx, [rsp + rcx + 0xb1]
mov r8, rax
xor edx, edx
call fcn.18005afd0
lea rax, [0x180089450]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x68], 0
mov rax, qword [rsp + 0xa0]
movzx eax, byte [rax]
movsx eax, al
cmp eax, 0x61
jne 0x180053949
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0
jne 0x180053949
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 0xc
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xffffe618
mov ecx, 4
imul rcx, rcx, 1
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x58]
call fcn.180057310
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
and rax, 0x40
test rax, rax
je 0x1800539b4
lea rax, [rsp + 0xf0]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.180057310
mov eax, 4
imul rax, rax, 2
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xffffe60a
mov ecx, 4
imul rcx, rcx, 2
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x90]
call fcn.180057110
mov dword [rsp + 0x28], 0
jmp 0x180053a0b
mov eax, dword [rsp + 0x28]
inc eax
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0x10
jge 0x180053b8a
mov rcx, qword [rsp + 0x140]
call fcn.180059df0
mov rcx, rax
call fcn.180005ae0
mov rax, qword [rax]
and rax, 3
test rax, rax
je 0x180053b1c
movsxd rax, dword [rsp + 0x28]
movzx eax, byte [rsp + rax + 0x90]
sar eax, 4
cdqe
lea rcx, str.0123456789abcdef
movzx eax, byte [rcx + rax]
mov edx, eax
mov rcx, qword [rsp + 0x140]
call fcn.180050730
movzx eax, al
test eax, eax
je 0x180053aa1
movsxd rax, dword [rsp + 0x28]
movzx eax, byte [rsp + rax + 0x90]
and eax, 0xf
cdqe
lea rcx, str.0123456789abcdef
movzx eax, byte [rcx + rax]
mov edx, eax
mov rcx, qword [rsp + 0x140]
call fcn.180050730
movzx eax, al
test eax, eax
jne 0x180053aab
mov eax, 0xfffffffc
jmp 0x180053ba9
lea rax, [0x180089458]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x40], 0
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax]
movsx eax, al
cmp eax, 0x61
jne 0x180053b1a
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x40], 0
jne 0x180053b1a
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 0xc
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
jmp 0x180053b85
mov eax, SafeArrayUnaccessData
mov word [rsp + 0x24], ax
movsx rax, word [rsp + 0x24]
lea rcx, [0x18009af80]
cmp dword [rcx + rax*4], 1
jne 0x180053b5b
movsx rax, word [rsp + 0x24]
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax*4]
inc eax
movsx rcx, word [rsp + 0x24]
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
movsxd rax, dword [rsp + 0x28]
movzx eax, byte [rsp + rax + 0x90]
mov edx, eax
mov rcx, qword [rsp + 0x140]
call fcn.18004fd20
movzx eax, al
test eax, eax
jne 0x180053b85
mov eax, 0xfffffffc
jmp 0x180053ba9
jmp 0x180053a01
xor edx, edx
mov rcx, qword [rsp + 0x140]
call fcn.180059b30
movzx eax, al
test eax, eax
je 0x180053ba7
mov eax, 0xfffffffc
jmp 0x180053ba9
xor eax, eax
add rsp, 0x138
ret