Function at 0x180004440
Capabilities:
Hash data with md5

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
sub rsp, 0x100
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x180106f10]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rbp, rcx
xor r12d, r12d
mov dword [rsp + 0x20], r12d
mov rbx, qword [0x18010ab60]
test rbx, rbx
jne 0x1800044b3
mov ecx, 0x1800
call fcn.1800564d0
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1800044a9
mov rcx, rax
call fcn.18000dd20
mov rbx, rax
jmp 0x1800044ac
mov rbx, r12
mov qword [0x18010ab60], rbx
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x30], rax
or rsi, 0xffffffffffffffff
test rbx, rbx
je 0x180004515
test rbx, 0xffffffffffff0000
jne 0x180004502
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.18000c0c0
test rax, rax
je 0x180004529
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.180009ab0
jmp 0x180004529
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x180004518
mov ecx, r12d
mov r8d, ecx
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.18000a5b0
nop
mov rax, qword [0x18010ab60]
test rax, rax
jne 0x18000455d
mov ecx, 0x1800
call fcn.1800564d0
mov qword [rsp + 0x38], rax
test rax, rax
je 0x180004553
mov rcx, rax
call fcn.18000dd20
jmp 0x180004556
mov rax, r12
mov qword [0x18010ab60], rax
lea rbx, [rax + 0x400]
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x28], rax
test rbx, rbx
je 0x1800045c2
test rbx, 0xffffffffffff0000
jne 0x1800045af
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.18000c0c0
test rax, rax
je 0x1800045d6
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.180009ab0
jmp 0x1800045d6
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x1800045c5
mov ecx, r12d
mov r8d, ecx
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.18000a5b0
nop
mov rax, qword [0x18010ab60]
test rax, rax
jne 0x18000460a
mov ecx, 0x1800
call fcn.1800564d0
mov qword [rsp + 0x38], rax
test rax, rax
je 0x180004600
mov rcx, rax
call fcn.18000dd20
jmp 0x180004603
mov rax, r12
mov qword [0x18010ab60], rax
lea rbx, [rax + 0x200]
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x40], rax
test rbx, rbx
je 0x18000466f
test rbx, 0xffffffffffff0000
jne 0x18000465c
movzx edi, bx
xor edx, edx
mov ecx, edi
call fcn.18000c0c0
test rax, rax
je 0x180004683
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.180009ab0
jmp 0x180004683
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x180004672
mov ecx, r12d
mov r8d, ecx
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.18000a5b0
nop
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.180005a00
nop
lea r8, [rsp + 0x40]
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.180005a00
nop
mov rdi, qword [rax]
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x20], rax
test rdi, rdi
je 0x1800046f9
test rdi, 0xffffffffffff0000
jne 0x1800046f9
movzx edi, di
xor edx, edx
mov ecx, edi
call fcn.18000c0c0
test rax, rax
je 0x180004707
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.180009910
jmp 0x180004707
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.180006730
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180004727
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180004746
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rbx, qword [rsp + 0x20]
cmp dword [rbx - 8], 1
jle 0x180004763
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.1800068d0
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0x70], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x68], r12
mov byte [rsp + 0x58], 0
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.180003680
mov byte [rsp + 0xe8], 0
mov dword [rsp + 0x94], r12d
mov dword [rsp + 0x90], r12d
mov dword [rsp + 0x80], 0x67452301
mov dword [rsp + 0x84], 0xefcdab89
mov dword [rsp + 0x88], 0x98badcfe
mov dword [rsp + 0x8c], 0x10325476
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0x10
cmovae rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
lea rcx, [rsp + 0x80]
call fcn.1800267a0
cmp qword [rsp + 0x70], 0x10
jb 0x18000480d
mov rcx, qword [rsp + 0x58]
call fcn.180056490
mov rdx, rbp
lea rcx, [rsp + 0x80]
call fcn.1800274c0
cmp qword [rbp + 0x20], 0x10
jb 0x18000482a
mov rcx, qword [rbp + 8]
jmp 0x18000482e
lea rcx, [rbp + 8]
call qword [sym.imp.USER32.dll_CharUpperA]
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180004850
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180004870
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180004890
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1800048b2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rax, rbp
jmp 0x1800048b5
mov rax, rbp
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1800564b0
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret