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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
movups xmm0, xmmword [rcx]
lea rdi, [rdx + 0xf8]
xor r14d, r14d
mov r10d, r8d
lea rbx, [rdx + 0x100]
movups xmmword [rdx], xmm0
mov rsi, rdx
mov r15, rcx
movsd xmm1, qword [rcx + 0x10]
movsd qword [rdx + 0x10], xmm1
movzx ebp, byte [rdx + 0xe]
movzx eax, byte [rdx + 0xf]
movzx r12d, byte [rdx + 0x12]
shl ebp, 8
or ebp, eax
cmp qword [rdi], r14
jne 0x1400071ec
or r10d, 0x10
mov qword [rsp + 0x28], r14
lea rax, [rbp*4]
mov ecx, r10d
lea r8, [rbp*8]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov rdx, rdi
call fcn.140046b20
test rax, rax
je 0x140007c96
movzx eax, byte [r15 + 0x19]
movzx ecx, byte [r15 + 0x18]
shl ecx, 8
or ecx, eax
mov dword [rsi + 0x15c], ecx
movzx ecx, byte [r15 + 0x1a]
shl ecx, 8
movzx eax, byte [r15 + 0x1b]
or ecx, eax
mov dword [rsi + 0x160], ecx
movzx eax, byte [r15 + 0x1d]
movzx ecx, byte [r15 + 0x1e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x1c]
shl rcx, 8
or rcx, rax
mov eax, dword [r15 + 0x1f]
shl rcx, 0x20
or rcx, rax
mov qword [rsi + 0x168], rcx
movzx eax, byte [r15 + 0x24]
movzx ecx, byte [r15 + 0x25]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x23]
shl rcx, 8
or rcx, rax
mov eax, dword [r15 + 0x26]
shl rcx, 0x20
or rcx, rax
mov qword [rsi + 0x170], rcx
movzx eax, byte [r15 + 0x2b]
movzx ecx, byte [r15 + 0x2c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x2a]
shl rcx, 8
or rcx, rax
mov eax, dword [r15 + 0x2d]
shl rcx, 0x20
or rcx, rax
mov qword [rsi + 0x178], rcx
movzx eax, byte [r15 + 0x32]
movzx ecx, byte [r15 + 0x31]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x33]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x34]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x35]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x36]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x37]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x38]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x18], rcx
movzx eax, byte [r15 + 0x3a]
movzx ecx, byte [r15 + 0x39]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x3b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x3c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x3d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x3e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x3f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x40]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x20], rcx
movzx eax, byte [r15 + 0x42]
movzx ecx, byte [r15 + 0x41]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x43]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x44]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x45]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x46]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x47]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x48]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0xc0], rcx
movzx eax, byte [r15 + 0x4a]
movzx ecx, byte [r15 + 0x49]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x4b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x4c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x4d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x4e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x4f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x50]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0xc8], rcx
movzx eax, byte [r15 + 0x52]
movzx ecx, byte [r15 + 0x51]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x53]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x54]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x55]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x56]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x57]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x58]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0xd0], rcx
movzx ecx, byte [r15 + 0x59]
movzx eax, byte [r15 + 0x5a]
shl rcx, 8
or rcx, rax
shl rcx, 8
movzx eax, byte [r15 + 0x5b]
or rcx, rax
movzx eax, byte [r15 + 0x5c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x5d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x5e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x5f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x60]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x38], rcx
movzx eax, byte [r15 + 0x62]
movzx ecx, byte [r15 + 0x61]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x63]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x64]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x65]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x66]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x67]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x68]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x40], rcx
movzx eax, byte [r15 + 0x6a]
movzx ecx, byte [r15 + 0x69]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x6b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x6c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x6d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x6e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x6f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x70]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x28], rcx
movzx eax, byte [r15 + 0x72]
movzx ecx, byte [r15 + 0x71]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x73]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x74]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x75]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x76]
shl rcx, 8
or rcx, rax
shl rcx, 8
lea rdx, [r15 + 0x91]
movzx eax, byte [r15 + 0x77]
or rcx, rax
movzx eax, byte [r15 + 0x78]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x30], rcx
movzx eax, byte [r15 + 0x7a]
movzx ecx, byte [r15 + 0x79]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x7b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x7c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x7d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x7e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x7f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x80]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0xd8], rcx
movzx eax, byte [r15 + 0x86]
movzx ecx, byte [r15 + 0x85]
shl ecx, 8
or ecx, eax
movzx eax, byte [r15 + 0x87]
shl ecx, 8
or ecx, eax
movzx eax, byte [r15 + 0x88]
shl ecx, 8
or ecx, eax
mov dword [rsi + 0x48], ecx
movzx eax, byte [r15 + 0x89]
movzx ecx, byte [r15 + 0x8a]
shl rax, 8
or rcx, rax
movzx eax, byte [r15 + 0x8b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x8c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x8d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x8e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x8f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r15 + 0x90]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0xe0], rcx
movzx eax, byte [rdx + 1]
movzx ecx, byte [rdx]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 3]
shl ecx, 8
or ecx, eax
mov dword [rsi + 0xf4], ecx
movzx ecx, byte [rdx + 4]
movzx eax, byte [rdx + 5]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rdx + 6]
mov r8d, dword [rsi + 0x18c]
or ecx, eax
movzx eax, byte [rdx + 7]
add r8, 2
add rdx, 8
shl ecx, 8
or ecx, eax
add r8, rdx
mov dword [rsi + 0xf0], ecx
movzx eax, byte [rdx]
mov dword [rsi + 0x158], eax
test r12d, r12d
je 0x1400077f2
mov rdx, r14
mov r9, r12
nop dword [rax + rax]
movzx eax, byte [r8 + 1]
lea rdx, [rdx + 8]
movzx ecx, byte [r8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 7]
shl rcx, 8
add r8, 8
or rcx, rax
mov rax, qword [rsi + 0x110]
mov qword [rdx + rax - 8], rcx
sub r9, 1
jne 0x140007780
movzx eax, byte [r8 + 1]
movzx ecx, byte [r8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 7]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x118], rcx
movzx eax, byte [r8 + 9]
movzx ecx, byte [r8 + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xb]
shl ecx, 8
or ecx, eax
mov dword [rsi + 0x128], ecx
movzx eax, byte [r8 + 0xd]
movzx ecx, byte [r8 + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xf]
shl ecx, 8
or ecx, eax
mov dword [rsi + 0x12c], ecx
movzx eax, byte [r8 + 0x11]
movzx ecx, byte [r8 + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rsi + 0x138], ecx
movzx eax, byte [r8 + 0x15]
movzx ecx, byte [r8 + 0x14]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x16]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x17]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x18]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x19]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1b]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x130], rcx
movzx ecx, byte [r8 + 0x1c]
shl rcx, 8
movzx eax, byte [r8 + 0x1d]
or rcx, rax
movzx eax, byte [r8 + 0x1e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x1f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x20]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x21]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x22]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x23]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x140], rcx
movzx eax, byte [r8 + 0x25]
movzx ecx, byte [r8 + 0x24]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x26]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x27]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x28]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x29]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2b]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x148], rcx
movzx eax, byte [r8 + 0x2d]
movzx ecx, byte [r8 + 0x2c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x2f]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x30]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x31]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x32]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x33]
shl rcx, 8
add r8, 0x34
or rcx, rax
mov qword [rsi + 0x150], rcx
movzx eax, byte [r8 + 1]
movzx ecx, byte [r8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 7]
shl rcx, 8
or rcx, rax
mov qword [rsi + 0x120], rcx
lea ecx, [r12*4]
add rcx, 8
add r8, rcx
cmp ebp, 4
jb 0x140007c1a
lea eax, [rbp - 4]
mov rdx, r14
shr eax, 2
inc eax
mov r9d, eax
lea r14d, [rax*4]
nop dword [rax]
mov eax, dword [r8]
mov dword [rsp + 0x60], eax
mov eax, dword [r8 + 4]
mov dword [rsp + 0x64], eax
mov rax, qword [rdi]
movsd xmm0, qword [rsp + 0x60]
movsd qword [rax + rdx*8], xmm0
movzx eax, byte [r8 + 9]
movzx ecx, byte [r8 + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0xb]
shl ecx, 8
or ecx, eax
mov rax, qword [rbx]
mov dword [rax + rdx*4], ecx
mov eax, dword [r8 + 0xc]
mov dword [rsp + 0x60], eax
mov eax, dword [r8 + 0x10]
mov dword [rsp + 0x64], eax
mov rax, qword [rdi]
movsd xmm0, qword [rsp + 0x60]
movsd qword [rax + rdx*8 + 8], xmm0
movzx eax, byte [r8 + 0x15]
movzx ecx, byte [r8 + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x17]
shl ecx, 8
or ecx, eax
mov rax, qword [rbx]
mov dword [rax + rdx*4 + 4], ecx
mov eax, dword [r8 + 0x18]
mov dword [rsp + 0x60], eax
mov eax, dword [r8 + 0x1c]
mov dword [rsp + 0x64], eax
mov rax, qword [rdi]
movsd xmm0, qword [rsp + 0x60]
movsd qword [rax + rdx*8 + 0x10], xmm0
movzx eax, byte [r8 + 0x21]
movzx ecx, byte [r8 + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x23]
shl ecx, 8
or ecx, eax
mov rax, qword [rbx]
mov dword [rax + rdx*4 + 8], ecx
mov eax, dword [r8 + 0x24]
mov dword [rsp + 0x60], eax
mov eax, dword [r8 + 0x28]
mov dword [rsp + 0x64], eax
mov rax, qword [rdi]
movsd xmm0, qword [rsp + 0x60]
movsd qword [rax + rdx*8 + 0x18], xmm0
movzx eax, byte [r8 + 0x2d]
movzx ecx, byte [r8 + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x2e]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 + 0x2f]
shl ecx, 8
add r8, 0x30
or ecx, eax
mov rax, qword [rbx]
mov dword [rax + rdx*4 + 0xc], ecx
add rdx, 4
sub r9, 1
jne 0x140007ae0
cmp r14d, ebp
jb 0x140007c21
jmp 0x140007c93
test ebp, ebp
je 0x140007c93
mov rdx, r14
sub ebp, r14d
lea r9, [rdx*4]
mov r11d, ebp
lea r10, [rdx*8]
mov eax, dword [r8]
lea r9, [r9 + 4]
mov dword [rsp + 0x60], eax
lea r10, [r10 + 8]
mov eax, dword [r8 + 4]
mov dword [rsp + 0x64], eax
mov rax, qword [rdi]
movsd xmm0, qword [rsp + 0x60]
movsd qword [r10 + rax - 8], xmm0
movzx eax, byte [r8 + 9]
movzx ecx, byte [r8 + 0xb]
movzx edx, byte [r8 + 8]
shl edx, 8
or edx, eax
movzx eax, byte [r8 + 0xa]
shl edx, 8
add r8, 0xc
or edx, eax
shl edx, 8
or edx, ecx
mov rcx, qword [rbx]
mov dword [r9 + rcx - 4], edx
sub r11, 1
jne 0x140007c37
mov rax, r8
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret