Function at 0x2d9e3d3cf0
Capabilities:
Enumerate pe sections

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push r14
sub rsp, 0x70
mov eax, dword [rcx + 0x10]
xor r10d, r10d
test byte [rcx + 0xf8], 2
mov r14, rdx
mov rbx, rcx
mov dword [rsp + 0x3c], eax
mov ebp, r10d
mov dword [rsp + 0xa8], r10d
je 0x2d9e3d3d48
cmp qword [rcx + 0x108], rbp
je 0x2d9e3d3d48
mov r9d, r8d
lea edx, [r10 + 2]
lea r8, [0x2d9e409fa0]
call fcn.2d9e3d3100
mov r8d, dword [rsp + 0xa0]
xor r10d, r10d
test r14, r14
je 0x2d9e3d42cb
cmp r8d, 0x18
jl 0x2d9e3d42cb
mov qword [rsp + 0x68], rsi
mov ecx, 0x100
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r15
nop dword [rax]
mov eax, dword [rbx]
sub r8d, 0x18
movzx edx, byte [r14 + 7]
mov r11d, 1
movzx esi, byte [r14 + 0xb]
movzx edi, byte [r14 + 0xf]
movzx r12d, byte [r14 + 0x13]
movzx r13d, byte [r14 + 0x17]
movzx r15d, byte [r14 + 4]
mov dword [rsp + 0x38], eax
movzx eax, byte [r14 + 5]
mov byte [rsp + 0x90], al
movzx eax, byte [r14 + 6]
shl esi, 8
shl edi, 8
shl r12d, 8
shl r13d, 8
movzx ecx, cx
imul edx, ecx
mov dword [rsp + 0xa0], r8d
add dx, ax
movzx eax, byte [r14 + 0xa]
add esi, eax
movzx eax, byte [r14 + 9]
shl esi, 8
add esi, eax
movzx eax, byte [r14 + 8]
shl esi, 8
add esi, eax
movzx eax, byte [r14 + 0xe]
add edi, eax
mov dword [rsp + 0x34], esi
movzx eax, byte [r14 + 0xd]
shl edi, 8
add edi, eax
movzx eax, byte [r14 + 0xc]
shl edi, 8
add edi, eax
movzx eax, byte [r14 + 0x12]
add r12d, eax
movzx eax, byte [r14 + 0x11]
shl r12d, 8
add r12d, eax
movzx eax, byte [r14 + 0x10]
shl r12d, 8
add r12d, eax
movzx eax, byte [r14 + 0x16]
add r13d, eax
movzx eax, byte [r14 + 0x15]
shl r13d, 8
add r13d, eax
movzx eax, byte [r14 + 0x14]
shl r13d, 8
add r13d, eax
lea rax, [r14 + 0x18]
mov qword [rsp + 0x98], rax
cmp r8d, r13d
jl 0x2d9e3d42c4
test r13d, r13d
js 0x2d9e3d42c4
lea eax, [r15 - 0x51]
cmp al, 3
ja 0x2d9e3d42bd
lea r14, [rbx + 0xa8]
movzx r9d, dx
mov rcx, qword [r14]
mov dword [rsp + 0x30], r9d
mov dword [rbx + 0x40], r9d
cmp rcx, r14
je 0x2d9e3d3efb
nop
mov rsi, qword [rcx]
mov eax, r12d
sub eax, dword [rcx + 0x24]
test eax, eax
jle 0x2d9e3d3eec
mov rax, qword [rcx + 8]
mov qword [rsi + 8], rax
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov qword [rdx], rax
mov rax, qword [0x2d9e419e40]
mov qword [rcx], r10
mov qword [rcx + 8], r10
test rax, rax
je 0x2d9e3d3ed6
call rax
jmp 0x2d9e3d3edb
call fcn.2d9e3e4124
dec dword [rbx + 0x60]
mov rcx, rsi
mov r10d, 0
cmp rsi, r14
jne 0x2d9e3d3ea0
mov r9d, dword [rsp + 0x30]
mov r11d, 1
mov esi, dword [rsp + 0x34]
mov r8, qword [r14]
cmp r8, r14
je 0x2d9e3d3f09
mov eax, dword [r8 + 0x24]
jmp 0x2d9e3d3f0c
mov eax, dword [rbx + 0x14]
mov dword [rbx + 0x10], eax
cmp r15b, 0x52
jne 0x2d9e3d4071
mov r9d, dword [rbx + 0x4c]
sub r9d, esi
js 0x2d9e3d3f9d
mov r10d, dword [rbx + 0x2c]
test r10d, r10d
jne 0x2d9e3d3f3c
mov eax, r9d
mov dword [rbx + 0x2c], r9d
cdq
sub eax, edx
sar eax, 1
mov dword [rbx + 0x28], eax
jmp 0x2d9e3d3f79
mov ecx, r9d
sub ecx, r10d
mov eax, ecx
neg eax
test ecx, ecx
cmovns eax, ecx
mov ecx, dword [rbx + 0x28]
lea edx, [rcx + rcx*2]
add eax, edx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [rbx + 0x28], eax
imul eax, r10d, 7
add eax, r9d
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 1
cmovl eax, r11d
mov dword [rbx + 0x2c], eax
mov ecx, dword [rbx + 0x28]
mov eax, 0xea60
shl ecx, 2
cmp dword [rbx + 0x50], ecx
cmovae ecx, dword [rbx + 0x50]
add ecx, dword [rbx + 0x2c]
cmp dword [rbx + 0x34], ecx
cmovae ecx, dword [rbx + 0x34]
cmp ecx, eax
cmovbe eax, ecx
mov dword [rbx + 0x30], eax
cmp edi, dword [rbx + 0x10]
js 0x2d9e3d3ffd
cmp edi, dword [rbx + 0x14]
jns 0x2d9e3d3ffd
cmp r8, r14
je 0x2d9e3d3ffd
nop dword [rax]
mov ecx, dword [r8 + 0x24]
cmp edi, ecx
je 0x2d9e3d3fc4
js 0x2d9e3d3ffd
mov r8, qword [r8]
cmp r8, r14
jne 0x2d9e3d3fb0
jmp 0x2d9e3d3ffd
mov rdx, qword [r8]
mov rcx, r8
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [rdx], rax
xor eax, eax
mov qword [r8], rax
mov qword [r8 + 8], rax
mov rax, qword [0x2d9e419e40]
test rax, rax
je 0x2d9e3d3ff5
call rax
jmp 0x2d9e3d3ffa
call fcn.2d9e3e4124
dec dword [rbx + 0x60]
mov rax, qword [r14]
cmp rax, r14
je 0x2d9e3d400a
mov eax, dword [rax + 0x24]
jmp 0x2d9e3d400d
mov eax, dword [rbx + 0x14]
cmp dword [rsp + 0xa8], 0
mov r15d, 1
mov dword [rbx + 0x10], eax
jne 0x2d9e3d402c
mov dword [rsp + 0xa8], r15d
mov ebp, edi
jmp 0x2d9e3d4035
mov eax, edi
sub eax, ebp
test eax, eax
cmovg ebp, edi
mov edx, 0x20
mov rcx, rbx
call fcn.2d9e3d31b0
test eax, eax
je 0x2d9e3d4190
mov ecx, dword [rbx + 0x4c]
lea r8, [0x2d9e409f78]
mov eax, dword [rbx + 0x30]
sub ecx, esi
mov dword [rsp + 0x28], eax
mov r9d, edi
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.2d9e3d3100
jmp 0x2d9e3d4190
cmp r15b, 0x51
jne 0x2d9e3d413a
mov edx, 0x10
mov rcx, rbx
call fcn.2d9e3d31b0
test eax, eax
je 0x2d9e3d409f
mov r9d, edi
mov dword [rsp + 0x20], esi
lea r8, [0x2d9e409fc0]
call fcn.2d9e3d3100
mov eax, edi
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x2d9e3d418a
mov r8d, esi
mov edx, edi
mov rcx, rbx
call fcn.2d9e3d3a80
cmp edi, dword [rbx + 0x18]
js 0x2d9e3d418a
mov rax, qword [0x2d9e419e48]
movsxd rcx, r13d
add rcx, 0x48
test rax, rax
je 0x2d9e3d40da
call rax
jmp 0x2d9e3d40df
call fcn.2d9e3e4414
mov rsi, rax
mov eax, dword [rsp + 0x38]
mov dword [rsi + 0x10], eax
movzx eax, byte [rsp + 0x90]
mov dword [rsi + 0x18], eax
mov eax, dword [rsp + 0x30]
mov dword [rsi + 0x1c], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + 0x20], eax
mov dword [rsi + 0x14], 0x51
mov dword [rsi + 0x24], edi
mov dword [rsi + 0x28], r12d
mov dword [rsi + 0x2c], r13d
test r13d, r13d
je 0x2d9e3d412d
mov rdx, qword [rsp + 0x98]
lea rcx, [rsi + 0x40]
mov r8d, r13d
call fcn.2d9e3e2bb0
mov rdx, rsi
mov rcx, rbx
call fcn.2d9e3d3bb0
jmp 0x2d9e3d418a
cmp r15b, 0x53
jne 0x2d9e3d4163
or dword [rbx + 0x48], 2
mov edx, 0x40
mov rcx, rbx
call fcn.2d9e3d31b0
test eax, eax
je 0x2d9e3d418a
lea r8, [0x2d9e409fb0]
call fcn.2d9e3d3100
jmp 0x2d9e3d418a
cmp r15b, 0x54
jne 0x2d9e3d42bd
mov edx, 0x80
mov rcx, rbx
call fcn.2d9e3d31b0
test eax, eax
je 0x2d9e3d418a
lea r8, [0x2d9e409fe0]
call fcn.2d9e3d3100
mov r15d, 1
mov r14, qword [rsp + 0x98]
mov ecx, 0x100
mov r8d, dword [rsp + 0xa0]
mov r10d, 0
mov eax, r13d
sub r8d, r13d
add r14, rax
cmp r8d, 0x18
jge 0x2d9e3d3d80
cmp dword [rsp + 0xa8], r10d
je 0x2d9e3d41f8
cmp ebp, dword [rbx + 0x10]
js 0x2d9e3d41f8
cmp ebp, dword [rbx + 0x14]
jns 0x2d9e3d41f8
lea r9, [rbx + 0xa8]
mov rcx, qword [r9]
cmp rcx, r9
je 0x2d9e3d41f8
mov edx, dword [rcx + 0x24]
cmp ebp, edx
mov r8, qword [rcx]
js 0x2d9e3d41f8
je 0x2d9e3d41f0
inc dword [rcx + 0x38]
mov rcx, r8
cmp r8, r9
jne 0x2d9e3d41e1
mov eax, dword [rbx + 0x10]
sub eax, dword [rsp + 0x3c]
test eax, eax
jle 0x2d9e3d4299
mov r11d, dword [rbx + 0x44]
mov r10d, dword [rbx + 0x40]
cmp r11d, r10d
jae 0x2d9e3d4299
mov r9d, dword [rbx + 8]
cmp r11d, dword [rbx + 0x24]
jae 0x2d9e3d422f
add dword [rbx + 0x80], r9d
lea eax, [r11 + 1]
jmp 0x2d9e3d4281
cmp dword [rbx + 0x80], r9d
jae 0x2d9e3d423f
mov dword [rbx + 0x80], r9d
mov r8d, dword [rbx + 0x80]
xor edx, edx
mov eax, r9d
imul eax, r9d
div r8d
mov edx, r9d
add eax, r8d
shr edx, 4
add edx, eax
lea eax, [r11 + 1]
imul eax, r9d
mov dword [rbx + 0x80], edx
cmp eax, edx
ja 0x2d9e3d4284
lea eax, [r9 - 1]
add eax, edx
test r9d, r9d
cmovne r15d, r9d
xor edx, edx
div r15d
mov dword [rbx + 0x44], eax
cmp dword [rbx + 0x44], r10d
jbe 0x2d9e3d4299
mov dword [rbx + 0x44], r10d
imul r10d, r9d
mov dword [rbx + 0x80], r10d
xor eax, eax
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov r15, qword [rsp + 0x48]
add rsp, 0x70
pop r14
pop rbp
pop rbx
ret
mov eax, 0xfffffffd
jmp 0x2d9e3d429b
mov eax, 0xfffffffe
jmp 0x2d9e3d429b
or eax, 0xffffffff
add rsp, 0x70
pop r14
pop rbp
pop rbx
ret