Function at 0x140108ad0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rsi
push rdi
push r13
push r15
sub rsp, 0x30
mov rsi, r9
mov ebx, r8d
mov rdi, rdx
xor r15d, r15d
call fcn.1400b1030
movzx r13d, al
mov byte [rsp + 0x20], al
test ebx, ebx
je 0x140108da0
movzx eax, byte [rsp + 0x88]
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], r12
mov r12, qword [rsp + 0x80]
mov qword [rsp + 0x78], r14
mov ecx, 0x7075
movzx ebx, word [rdi]
test r13b, r13b
jne 0x140108b36
rol bx, 8
test r13b, r13b
je 0x140108b3c
movzx ebp, word [rdi + 2]
jmp 0x140108b44
movzx ebp, word [rdi + 2]
rol bp, 8
test al, al
je 0x140108b80
mov rax, qword [r12]
lea rdx, str.ExtraHeaderId
movzx r8d, bx
mov rcx, r12
call qword [rax + 0x68]
mov r11, qword [r12]
lea rdx, str.ExtraHeaderLen
movzx r8d, bp
mov rcx, r12
call qword [r11 + 0x58]
movzx eax, byte [rsp + 0x88]
mov ecx, 0x7075
add r15d, 4
cmp bx, 1
jne 0x140108c51
cmp bp, 8
jb 0x140108bcc
movzx eax, byte [rdi + 4]
mov byte [rsi + 0x30], al
movzx eax, byte [rdi + 5]
mov byte [rsi + 0x31], al
movzx eax, byte [rdi + 6]
mov byte [rsi + 0x32], al
movzx eax, byte [rdi + 7]
mov byte [rsi + 0x33], al
movzx eax, byte [rdi + 8]
mov byte [rsi + 0x34], al
movzx eax, byte [rdi + 9]
mov byte [rsi + 0x35], al
movzx eax, byte [rdi + 0xa]
mov byte [rsi + 0x36], al
movzx eax, byte [rdi + 0xb]
mov byte [rsi + 0x37], al
cmp bp, 0x10
jb 0x140108c0a
movzx eax, byte [rdi + 0xc]
mov byte [rsi + 0x28], al
movzx eax, byte [rdi + 0xd]
mov byte [rsi + 0x29], al
movzx eax, byte [rdi + 0xe]
mov byte [rsi + 0x2a], al
movzx eax, byte [rdi + 0xf]
mov byte [rsi + 0x2b], al
movzx eax, byte [rdi + 0x10]
mov byte [rsi + 0x2c], al
movzx eax, byte [rdi + 0x11]
mov byte [rsi + 0x2d], al
movzx eax, byte [rdi + 0x12]
mov byte [rsi + 0x2e], al
movzx eax, byte [rdi + 0x13]
mov byte [rsi + 0x2f], al
cmp bp, 0x18
jb 0x140108d6a
movzx eax, byte [rdi + 0x14]
mov byte [rsi + 0x38], al
movzx eax, byte [rdi + 0x15]
mov byte [rsi + 0x39], al
movzx eax, byte [rdi + 0x16]
mov byte [rsi + 0x3a], al
movzx eax, byte [rdi + 0x17]
mov byte [rsi + 0x3b], al
movzx eax, byte [rdi + 0x18]
mov byte [rsi + 0x3c], al
movzx eax, byte [rdi + 0x19]
mov byte [rsi + 0x3d], al
movzx eax, byte [rdi + 0x1a]
mov byte [rsi + 0x3e], al
movzx eax, byte [rdi + 0x1b]
mov byte [rsi + 0x3f], al
jmp 0x140108d6a
cmp bx, cx
jne 0x140108cb9
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x140108d6a
lea r13, [rax + 0xd0]
mov rcx, r13
call fcn.140068010
movzx r8d, bp
lea rdx, [rdi + 9]
sub r8d, 5
mov rcx, r13
call fcn.140068990
cmp byte [rsp + 0x88], 0
je 0x140108d64
mov rbx, qword [r12]
mov rcx, r13
call fcn.140098640
lea rdx, str.unicodeFilename
mov rcx, r12
mov r8, rax
call qword [rbx + 0x50]
jmp 0x140108d64
cmp bx, 0x17
jne 0x140108d6a
test al, al
je 0x140108ce0
mov rax, qword [r12]
lea rdx, str.Strong_Encryption_Header__0x0017_
mov rcx, r12
call qword [rax + 0x28]
movzx eax, byte [rsp + 0x88]
movzx ecx, word [rdi + 4]
movzx ebx, word [rdi + 6]
movzx r14d, word [rdi + 0xa]
test r13b, r13b
movzx r13d, word [rdi + 8]
jne 0x140108d09
rol cx, 8
rol bx, 8
rol r13w, 8
rol r14w, 8
test al, al
je 0x140108d64
mov rax, qword [r12]
movzx r8d, cx
lea rdx, str.Format
mov rcx, r12
call qword [rax + 0x58]
mov r11, qword [r12]
lea rdx, str.AlgId
movzx r8d, bx
mov rcx, r12
call qword [r11 + 0x68]
mov r11, qword [r12]
lea rdx, str.Bitlen
movzx r8d, r13w
mov rcx, r12
call qword [r11 + 0x58]
mov r11, qword [r12]
lea rdx, [0x1404bb674]
movzx r8d, r14w
mov rcx, r12
call qword [r11 + 0x58]
movzx r13d, byte [rsp + 0x20]
movzx eax, bp
add r15d, eax
add eax, 4
movsxd rcx, eax
movzx eax, byte [rsp + 0x88]
add rdi, rcx
mov ecx, 0x7075
cmp r15d, dword [rsp + 0x70]
jb 0x140108b25
mov r14, qword [rsp + 0x78]
mov r12, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r13
pop rdi
pop rsi
pop rbx
ret