Function at 0x140003e10
Capabilities:
Hash data with md5

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x300]
sub rsp, 0x400
mov rax, qword [0x1402ae7c0]
xor rax, rsp
mov qword [rbp + 0x2f0], rax
mov rsi, rdx
mov r14, rcx
mov qword [rbp + 0x70], rcx
xor r15d, r15d
mov dword [rsp + 0x30], r15d
xor edx, edx
mov r8d, 0x110
lea rcx, [rsp + 0x60]
call fcn.14020e940
mov rdx, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x140003e73
mov rdx, qword [rsi]
lea rcx, [rsp + 0x60]
call fcn.140006050
nop
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x70], 6
jne 0x14000433f
mov qword [rbp + 0x190], r15
mov dword [rbp + 0x180], 0x67452301
mov dword [rbp + 0x184], 0xefcdab89
mov dword [rbp + 0x188], 0x98badcfe
mov dword [rbp + 0x18c], 0x10325476
mov r12d, 2
mov r8d, r12d
lea rcx, [rsp + 0x60]
call fcn.140006350
lea rdx, [rbp + 0x78]
lea rcx, [rsp + 0x60]
call fcn.140006270
xor r8d, r8d
lea rcx, [rsp + 0x60]
call fcn.140006350
mov ecx, 0x2000
call fcn.14000c6e0
mov rdi, rax
test rax, rax
je 0x140003f13
xor edx, edx
mov r8d, 0x2000
mov rcx, rax
call fcn.14020e940
jmp 0x140003f16
mov rdi, r15
mov qword [rbp + 0x70], rdi
mov rbx, r15
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.140006540
mov rdx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
test byte [rcx + rdx + 0x10], 6
jne 0x140003f75
nop dword [rax + rax]
mov r8, qword [rsp + 0x68]
add rbx, r8
mov rdx, rdi
lea rcx, [rbp + 0x180]
call fcn.140002400
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.140006540
mov rdx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
test byte [rcx + rdx + 0x10], 6
je 0x140003f40
mov r8, qword [rsp + 0x68]
test r8, r8
jle 0x140003f91
add rbx, r8
mov rdx, rdi
lea rcx, [rbp + 0x180]
call fcn.140002400
lea rcx, [rsp + 0x70]
call fcn.140007e40
test rax, rax
jne 0x140003fcf
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
mov eax, 6
cmp qword [rbp + rcx - 0x58], 0
cmovne eax, r12d
or eax, dword [rsp + rcx + 0x70]
and eax, 0x17
mov dword [rsp + rcx + 0x70], eax
mov edx, dword [rsp + rcx + 0x74]
and edx, eax
jne 0x1400043bc
mov rcx, qword [rbp + 0x78]
add rcx, qword [rbp + 0x80]
cmp rbx, rcx
jne 0x1400042be
lea rdx, [rbp + 0x180]
lea rcx, [rbp + 0x2d0]
call fcn.140002510
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp + 0x90]
call fcn.14020e940
lea rcx, [rbp + 0x90]
call fcn.140004ce0
nop
mov rbx, r15
nop word [rax + rax]
mov rax, qword [rbp + 0x90]
movsxd rcx, dword [rax + 4]
mov eax, dword [rbp + rcx + 0xa8]
and eax, 0xfffff9ff
bts eax, 0xb
mov dword [rbp + rcx + 0xa8], eax
mov rdx, r12
lea rcx, [rsp + 0x38]
call fcn.1401adb0c
mov rdx, qword [rax + 8]
mov r8, qword [rax]
mov rax, qword [rbp + 0x90]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x90]
add rcx, rax
call r8
mov rax, qword [rbp + 0x90]
movsxd rcx, dword [rax + 4]
mov byte [rbp + rcx + 0xe8], 0x30
movzx edx, byte [rbp + rbx + 0x2d0]
lea rcx, [rbp + 0x90]
call fcn.140004e00
inc rbx
cmp rbx, 0x10
jl 0x140004020
lea rcx, [rbp + 0x90]
call fcn.14000b060
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x2d0], xmm0
mov qword [rbp + 0x2e0], r15
mov qword [rbp + 0x2e8], SafeArrayGetDim
mov byte [rbp + 0x2d0], 0
mov dword [rsp + 0x30], 4
mov rcx, qword [rbp + 0x108]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x14000410f
mov rax, qword [rbp + 0xd8]
mov rbx, qword [rax]
test rbx, rbx
je 0x14000410f
mov rax, qword [rbp + 0xb8]
mov r9, qword [rax]
cmp rbx, qword [rbp + 0x100]
cmovb rbx, qword [rbp + 0x100]
jmp 0x14000413a
test cl, 4
jne 0x14000417a
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rax]
test rcx, rcx
je 0x14000417a
mov rax, qword [rbp + 0xb0]
mov r9, qword [rax]
mov rax, qword [rbp + 0xe8]
movsxd rbx, dword [rax]
add rbx, rcx
mov rax, r9
sub rbx, r9
test rax, rax
je 0x14000417a
lea rcx, [rbp + 0x2d0]
cmp rbx, 0xf
ja 0x14000416e
mov qword [rbp + 0x2e0], rbx
mov r8, rbx
mov rdx, r9
call fcn.14020e2a0
mov byte [rbp + rbx + 0x2d0], 0
jmp 0x14000417a
xor r8d, r8d
mov rdx, rbx
call fcn.14000a600
nop
movups xmm0, xmmword [rbp + 0x2d0]
movups xmmword [r14], xmm0
movups xmm1, xmmword [rbp + 0x2e0]
movups xmmword [r14 + 0x10], xmm1
mov rax, qword [rbp + 0x90]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx + 0x90], rax
mov rax, qword [rbp + 0x90]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0x8c], edx
lea rcx, [rbp + 0x98]
call fcn.140004b00
mov rax, qword [rbp + 0x90]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x90], rax
mov rax, qword [rbp + 0x90]
movsxd rdx, dword [rax + 4]
lea r8d, [rdx - 0x10]
mov dword [rbp + rdx + 0x8c], r8d
lea rbx, vtable.std::ios_base.0
mov qword [rbp + 0x118], rbx
lea rcx, [rbp + 0x118]
call fcn.1401ada14
nop
test rdi, rdi
je 0x140004229
mov rcx, rdi
call fcn.14000c6f0
nop
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x60], rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x5c], edx
lea rcx, [rsp + 0x70]
call fcn.140005db0
mov rcx, qword [rsp + 0x60]
movsxd rdx, dword [rcx + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rdx + 0x60], rax
mov rcx, qword [rsp + 0x60]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x18]
mov dword [rsp + rdx + 0x5c], r8d
mov qword [rbp + 0x10], rbx
lea rcx, [rbp + 0x10]
call fcn.1401ada14
nop
mov rax, r14
mov rcx, qword [rbp + 0x2f0]
xor rcx, rsp
call fcn.1401aba90
lea r11, [rsp + 0x400]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
lea rcx, [rbp + 0x1e0]
call fcn.140004550
lea rcx, [rbp + 0x1e0]
call fcn.140004ce0
nop
lea rdx, [0x140272388]
lea rcx, [rbp + 0x1e0]
call fcn.140009280
mov rcx, rax
mov rdx, rsi
call fcn.140009530
mov rcx, rax
lea rdx, [0x140272378]
call fcn.140009280
mov rcx, rax
call fcn.140005140
lea rdx, [rbp + 0x2d0]
lea rcx, [rbp + 0x1e0]
call fcn.140004c00
nop
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140003240
lea rdx, [0x1402a7eb0]
lea rcx, [rsp + 0x38]
call fcn.1401db1d0
nop
lea rcx, [rbp + 0x1e0]
call fcn.140004550
lea rcx, [rbp + 0x1e0]
call fcn.140004ce0
nop
lea rdx, [0x1402723b8]
lea rcx, [rbp + 0x1e0]
call fcn.140009280
mov rcx, rax
mov rdx, rsi
call fcn.140009530
mov rcx, rax
lea rdx, [0x1402723a0]
call fcn.140009280
mov rcx, rax
call fcn.140005140
lea rdx, [rsp + 0x38]
lea rcx, [rbp + 0x1e0]
call fcn.140004c00
nop
mov rdx, rax
lea rcx, [rbp + 0x78]
call fcn.140003240
lea rdx, [0x1402a7eb0]
lea rcx, [rbp + 0x78]
call fcn.1401db1d0
nop
test dl, 4
je 0x1400043ca
lea rbx, [0x140272330]
jmp 0x1400043df
test dl, 2
lea rbx, [0x140272348]
lea rax, [0x140272360]
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0x2d0]
call fcn.140003360
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140003cb0
lea rdx, [0x1402a7f28]
lea rcx, [rsp + 0x38]
call fcn.1401db1d0
int3