Function at 0x10016a2c
Capabilities:
Enumerate pe sections
Parse pe header
Read file on windows
Read file via mapping
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1f8
lea eax, [rdx - 2]
cmp eax, 2
jb 0x100172ca
test edx, edx
je 0x100172ca
xor eax, eax
cmp edx, 1
jne 0x100172cf
call sub.KERNEL32.dll_GetCurrentProcess
mov rsi, rax
xor ecx, ecx
call sub.KERNEL32.dll_GetModuleHandleA
test rax, rax
je 0x10017373
lea r8, [rsp + 0x60]
and qword [r8], 0
and dword [r8 + 8], 0
and qword [r8 + 0x10], 0
mov rcx, rsi
mov rdx, rax
mov r9d, 0x18
call sub.KERNEL32.dll_K32GetModuleInformation
test eax, eax
je 0x100173ae
lea rsi, [rsp + 0x60]
mov rax, qword [rsi]
mov qword [rsp + 0xe8], rax
mov r13d, dword [rsi + 8]
mov rcx, rsi
call fcn.100b3970
cmp byte [rsi + 0x18], 2
je 0x100173e9
mov r14, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
mov rsi, qword [rsp + 0x70]
lea rax, [r14 + rsi]
lea rcx, [rsp + 0xf0]
mov qword [rcx], r14
mov qword [rcx + 8], rax
and word [rcx + 0x10], 0
call fcn.1008728c
test ax, ax
mov qword [rsp + 0xd8], r14
je 0x10016c51
mov edi, edx
mov qword [rsp + 0x48], rsi
lea rbx, [rsp + 0x60]
lea rdx, [rsp + 0xf0]
mov rcx, rbx
call fcn.100d0d5a
mov rax, qword [rbx]
inc rax
mov rcx, 0xffffffffffffffff
cmovne rcx, rax
cmp rcx, 5
mov r14d, 4
cmovae r14, rcx
mov rax, r14
shr rax, 0x3e
jne 0x10017501
mov rsi, r13
lea rbx, [r14 + r14]
mov ecx, 2
mov rdx, rbx
call fcn.100bbffb
test rax, rax
je 0x1001750b
mov r12, rax
mov word [rax], di
lea rdi, [rsp + 0x120]
mov qword [rdi], rax
mov qword [rdi + 8], r14
mov qword [rdi + 0x10], 1
mov rax, qword [rsp + 0x100]
lea rbx, [rsp + 0x180]
mov qword [rbx + 0x10], rax
movups xmm0, xmmword [rsp + 0xf0]
movaps xmmword [rbx], xmm0
mov r14d, 1
lea r15, [rsp + 0x60]
mov r13, 0xffffffffffffffff
mov rcx, rbx
call fcn.1008728c
cmp ax, 1
jne 0x10016c1b
mov ebp, edx
cmp r14, qword [rsp + 0x128]
jne 0x10016c09
mov rcx, r15
mov rdx, rbx
call fcn.100d0d5a
mov r8, qword [rsp + 0x60]
inc r8
cmove r8, r13
mov rcx, rdi
mov rdx, r14
call fcn.1008735f
mov rcx, rax
call fcn.100be59c
mov r12, qword [rsp + 0x120]
mov word [r12 + r14*2], bp
inc r14
mov qword [rsp + 0x130], r14
jmp 0x10016bbd
movups xmm0, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x70], rax
mov rdx, qword [rsp + 0x68]
cmp rax, rdx
mov r14, qword [rsp + 0xd8]
mov r13, rsi
mov rsi, qword [rsp + 0x48]
je 0x10016c64
jmp 0x10016c73
mov qword [rsp + 0x60], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.100d0ea0
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x60]
and word [rbx + rax*2], 0
inc rax
mov qword [rsp + 0x70], rax
and qword [rsp + 0x30], 0
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
mov rcx, rbx
mov edx, 0x80000000
mov r8d, 1
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileW
mov rdi, rax
mov rdx, qword [rsp + 0x68]
mov rcx, rbx
call fcn.100cfe23
cmp rdi, 0xffffffffffffffff
je 0x10017307
and qword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
mov rcx, rdi
xor edx, edx
mov r8d, 2
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileMappingW
mov rbx, rax
mov rcx, rdi
call fcn.100d1830
test rbx, rbx
je 0x10017307
and qword [rsp + 0x20], 0
mov rcx, rbx
mov edx, 4
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_MapViewOfFile
mov r12, rax
test rax, rax
je 0x10017422
xorps xmm0, xmm0
lea rdx, [rsp + 0x60]
movaps xmmword [rdx + 0x20], xmm0
movaps xmmword [rdx + 0x10], xmm0
movaps xmmword [rdx], xmm0
mov r8d, 0x30
mov rcx, r12
call sub.KERNEL32.dll_VirtualQuery
mov rcx, qword [rsp + 0x78]
mov dil, 1
mov dl, 1
cmp rcx, 0x40
mov qword [rsp + 0xe0], rbx
jb 0x10017342
mov dl, 4
test r12b, 3
jne 0x10017342
cmp word [r12], 0x5a4d
jne 0x10017303
mov eax, dword [r12 + 0x3c]
test al, 3
jne 0x10017342
cmp eax, 0x1000000
ja 0x10017340
lea r8, [rax + 0x88]
mov dl, 1
cmp r8, rcx
ja 0x10017342
cmp dword [r12 + rax], 0x4550
jne 0x10017303
movzx r9d, word [r12 + rax + 0x18]
cmp r9d, 0x20b
je 0x10016dcc
cmp r9d, 0x10b
jne 0x10017303
mov r10d, dword [r12 + rax + 0x54]
cmp rcx, r10
jb 0x10017342
cmp r10d, dword [r12 + rax + 0x50]
ja 0x10017340
cmp r9d, 0x20b
jne 0x10016df8
mov edx, dword [r12 + rax + 0x84]
jmp 0x10016e17
lea r8, [rax + 0x78]
cmp r8, rcx
ja 0x10017342
cmp r9d, 0x10b
jne 0x10017437
mov edx, dword [r12 + rax + 0x74]
cmp edx, 0x10
mov r9d, 0x10
cmovb r9d, edx
shl r9d, 3
add r8, r9
mov dl, 1
cmp r8, rcx
ja 0x10017342
movzx r8d, word [r12 + rax + 6]
mov dl, 7
cmp r8, 0x60
ja 0x10017342
imul rdx, r8, 0x28
add rdx, rax
movzx r9d, word [r12 + rax + 0x14]
lea r10, [r9 + rdx]
add r10, 0x18
mov dl, 1
cmp r10, rcx
ja 0x10017342
and qword [rsp + 0x60], 0
add r13, qword [rsp + 0xe8]
xor ecx, ecx
lea rdx, str..text
cmp rcx, 5
je 0x10016e93
mov r10b, byte [rcx + rdx]
mov byte [rsp + rcx + 0x60], r10b
inc rcx
jmp 0x10016e7f
mov rcx, qword [rsp + 0x60]
add r9, rax
lea rdx, [r12 + r9]
add rdx, 0xfffffffffffffff0
imul rax, r8, 0x28
test rax, rax
je 0x100172e3
lea r8, [rdx + 0x28]
add rax, 0xffffffffffffffd8
cmp qword [rdx + 0x28], rcx
mov rdx, r8
jne 0x10016ea7
mov ebp, dword [r8 + 0x10]
mov r15d, dword [r8 + 0x14]
lea rbx, [rsp + 0x60]
and dword [rbx + 0x20], 0
and word [rbx + 0x24], 0
and dword [rbx], 0
xorps xmm0, xmm0
movups xmmword [rbx + 8], xmm0
mov qword [rbx + 0x18], 7
mov byte [rbx + 0x20], 1
mov rcx, r14
mov rdx, rsi
mov r8, rbx
call fcn.100b1af0
mov qword [rsp + 0x48], rdx
mov rcx, r14
test rax, rax
jne 0x1001744d
mov rdx, qword [rsp + 0x50]
call fcn.100d000e
test rbp, rbp
je 0x10016f45
mov ecx, 1
mov rdx, rbp
mov r8b, 1
call fcn.100cfcc0
mov r14, rax
test rax, rax
jne 0x10016f4b
mov ecx, 1
mov rdx, rbp
call fcn.10017c80
jmp 0x100175a0
mov r14d, 1
movups xmm0, xmmword [0x100f03d8]
lea rdi, [rsp + 0x180]
movaps xmmword [rdi], xmm0
lea rax, [rsp + 0x68]
mov qword [rax], r15
mov qword [rax - 8], 1
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rdi
and qword [rsp + 0x40], 0
mov rcx, qword [rsp + 0x48]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.ntdll.dll_NtReadFile
cmp eax, 0x103
jne 0x10016fb5
mov rcx, qword [rsp + 0x48]
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov eax, dword [rsp + 0x180]
cmp eax, 0xc0000011
je 0x10016fdb
cmp eax, 0x103
je 0x1001751d
test eax, eax
jns 0x10016fdb
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
cmp eax, 0x26
jne 0x1001756c
mov qword [rsp + 0x118], r13
lea rsi, [rsp + 0x1a8]
xorps xmm0, xmm0
movups xmmword [rsi + 0x30], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi], xmm0
mov byte [rsi + 0x40], 0
movaps xmm0, xmmword [0x100d52d0]
movups xmmword [rsi - 0x18], xmm0
movaps xmm0, xmmword [0x100d52e0]
movups xmmword [rsi - 0x28], xmm0
and qword [rsi - 8], 0
mov qword [rsp + 0x60], rdi
cmp ebp, 0x3f
ja 0x10017068
lea r8, str._cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov rcx, rsi
xor edx, edx
call fcn.10008484
lea r9, str._cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov rcx, rax
mov r8, rbp
call fcn.100084b3
lea rcx, str._cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r14
mov r9, rbp
call fcn.100cffe1
mov rdi, rbp
jmp 0x100170b9
mov r8d, ebp
shr r8d, 6
lea rcx, [rsp + 0x60]
mov rdx, r14
call fcn.10009e7a
mov edi, ebp
and edi, 0x3f
lea r9, str._cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov edx, 0x40
mov rcx, rsi
mov r8, rdi
call fcn.100084b3
mov r8d, ebp
and r8d, 0xffffffc0
add r8, r14
lea rcx, str._cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r9, rdi
call fcn.100cffe1
lea rsi, [rsp + 0x180]
mov byte [rsi + 0x68], dil
mov ecx, 0xe
mov rdi, rbx
rep movsq qword [rdi], qword [rsi]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x160], xmm0
lea rsi, [rsp + 0x88]
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0x58], rbx
movzx r13d, byte [rsi + 0x40]
mov r15, qword [rsi - 8]
mov byte [rsp + r13 + 0x88], pe_nt_image_headers64
lea rdx, [r13 + 1]
lea r8, str._cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov rcx, rsi
call fcn.10008484
shl r15, 9
lea rdi, [r13*8]
or rdi, r15
bswap rdi
xor ecx, ecx
cmp rdx, rcx
je 0x10017147
mov byte [rax + rcx], 0
inc rcx
jmp 0x10017139
not r13d
test r13b, 0x38
jne 0x10017188
lea rcx, [rsp + 0x58]
mov rdx, rsi
call fcn.1000a0fc
xorps xmm0, xmm0
lea rdx, [rsp + 0x120]
movaps xmmword [rdx + 0x20], xmm0
movaps xmmword [rdx + 0x10], xmm0
movaps xmmword [rdx], xmm0
and qword [rdx + 0x30], 0
mov qword [rdx + 0x38], rdi
lea rcx, [rsp + 0x58]
call fcn.1000a0fc
jmp 0x1001719d
mov qword [rsp + 0xc0], rdi
lea rcx, [rsp + 0x58]
mov rdx, rsi
call fcn.1000a0fc
mov byte [rsp + 0xc8], 0
mov rax, qword [rsp + 0x58]
xor ecx, ecx
mov rsi, qword [rsp + 0x118]
cmp rcx, 8
je 0x100171cb
mov edx, dword [rax + rcx*4]
bswap edx
mov dword [rsp + rcx*4 + 0xf0], edx
inc rcx
jmp 0x100171b4
movaps xmm0, xmmword [rsp + 0xf0]
movaps xmm1, xmmword [rsp + 0x100]
lea rcx, [rsp + 0x120]
movaps xmmword [rcx], xmm0
movaps xmmword [rcx + 0x10], xmm1
lea rdx, [0x100dabd8]
mov r8d, 0x20
call sub.ntdll.dll_memcmp
test eax, eax
jne 0x1001748d
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x190], rsi
mov qword [rsp + 0x180], 1
mov rax, qword [0x10112028]
cmp rax, 3
je 0x10017294
mov rax, qword [0x10112028]
cmp rax, 3
je 0x10017294
lea rax, [rsp + 0x180]
mov qword [rsp + 0x60], rax
lea rax, [0x10112018]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x160]
mov qword [rsp + 0x70], rax
lea r8, [rsp + 0xf0]
mov qword [r8], rbx
lea rax, str._rustc_79e9716c980570bfd1f666e3b16ac583f0168962library_std_src_synconce.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x10112028]
lea r9, method..virtual_0
mov dl, 1
call fcn.10093270
cmp qword [rsp + 0x180], 0
jne 0x100174c7
mov rcx, r14
mov rdx, rbp
call fcn.100d000e
xor edi, edi
mov rcx, qword [rsp + 0x48]
call fcn.100d1830
mov rcx, r12
mov rdx, qword [rsp + 0xe0]
call fcn.100875c8
mov eax, 1
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dil, 1
lea rcx, [0x100f5a00]
lea r8, [0x100dab90]
mov edx, 0x2b
call fcn.1001a1e0
jmp 0x100175a0
mov dl, 5
jmp 0x10017342
call fcn.1006e999
mov rdi, rax
lea r8, [rsp + 0x60]
mov qword [r8], rdi
lea rax, [0x100dab58]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f4fef]
lea r9, fcn.10007266
mov edx, 0x2b
call fcn.1001d2b0
jmp 0x100175a0
mov dl, 7
lea r8, [rsp + 0x60]
mov byte [r8], dl
lea rax, [0x100dab70]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f4fef]
lea r9, [0x100da100]
mov edx, 0x2b
call fcn.1001d2b0
jmp 0x100175a0
call fcn.100d066e
lea r8, [rsp + 0x60]
and qword [r8], 0
mov dword [r8 + 8], eax
lea rax, [0x100daae8]
mov qword [rsp + 0x20], rax
lea rcx, str.Couldnt_get_Module_Handle_for_the_UDK_processsrc_dll.rs_r
lea r9, fcn.1000753d
mov edx, 0x2e
call fcn.1001d2b0
jmp 0x100175a0
call fcn.100d066e
lea r8, [rsp + 0x60]
and qword [r8], 0
mov dword [r8 + 8], eax
lea rax, [0x100dab28]
mov qword [rsp + 0x20], rax
lea rcx, str.Failed_to_get_module_information_for_UDK_r
lea r9, fcn.1000753d
mov edx, 0x28
call fcn.1001d2b0
jmp 0x100175a0
mov rax, qword [rsp + 0x60]
lea r8, [rsp + 0x180]
mov qword [r8], rax
lea rax, [0x100dab40]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f4fef]
lea r9, fcn.10007266
mov edx, 0x2b
call fcn.1001d2b0
jmp 0x100175a0
call fcn.1006e999
mov rdi, rax
mov rcx, rbx
call fcn.100d1830
jmp 0x1001730f
mov dl, 5
cmp r9d, 0x20b
jne 0x10017342
mov dl, 6
jmp 0x10017342
mov rdx, qword [rsp + 0x50]
call fcn.100d000e
lea r8, [rsp + 0x60]
mov rax, qword [rsp + 0x48]
mov qword [r8], rax
lea rax, [0x100daba8]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f4fef]
lea r9, fcn.10007266
mov edx, 0x2b
call fcn.1001d2b0
jmp 0x100175a0
lea rax, str.Unknown_UDK_hash
lea rcx, [rsp + 0x60]
mov qword [rcx], rax
mov qword [rcx + 8], 1
lea rax, str._rustc_79e9716c980570bfd1f666e3b16ac583f0168962librarycore_srccharmethods.rs
mov qword [rcx + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rcx + 0x18], xmm0
lea rdx, [0x100dac30]
call fcn.100194a0
jmp 0x100175a0
movups xmm0, xmmword [rsp + 0x188]
lea r8, [rsp + 0x60]
movups xmmword [r8], xmm0
lea rax, [0x100dabf8]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f4fef]
lea r9, method..virtual_0
mov edx, 0x2b
call fcn.1001d2b0
jmp 0x100175a0
call fcn.10017c40
jmp 0x100175a0
mov ecx, 2
mov rdx, rbx
call fcn.10017c80
jmp 0x100175a0
lea rcx, [rsp + 0x120]
mov byte [rcx + 4], 0
and dword [rcx], 0
lea rax, [0x100f0440]
lea rdx, [rsp + 0x60]
mov qword [rdx], rax
mov qword [rdx + 8], 1
lea rax, [rsp + 0x160]
mov qword [rdx + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rdx + 0x18], xmm0
call fcn.10093030
mov rcx, rax
call fcn.10093110
mov ecx, 7
int 0x29
ud2
shl rax, 0x20
or rax, 2
lea r8, [rsp + 0x60]
mov qword [r8], rax
lea rax, [0x100dabc0]
mov qword [rsp + 0x20], rax
lea rcx, [0x100f4fef]
lea r9, fcn.10007266
mov edx, 0x2b
call fcn.1001d2b0
ud2