Function at 0x180002d2c
Capabilities:
Enumerate pe sections

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov eax, dword [rcx + 0x10]
mov r9d, r8d
xor r8d, r8d
mov dword [rsp + 0x30], eax
xor r12d, r12d
mov dword [rsp + 0xa8], r8d
mov r15, rdx
mov rbx, rcx
test rdx, rdx
je 0x180003253
cmp r9d, 0x18
jl 0x180003253
lea r13d, [r12 + 1]
movzx eax, byte [r15 + 2]
movzx esi, byte [r15 + 3]
shl esi, 8
add esi, eax
movzx eax, byte [r15 + 1]
shl esi, 8
add esi, eax
movzx eax, byte [r15]
shl esi, 8
add esi, eax
cmp esi, dword [rbx]
jne 0x180003253
mov al, byte [r15 + 5]
sub r9d, 0x18
movzx r11d, byte [r15 + 0xb]
movzx ebp, byte [r15 + 0xf]
movzx ecx, byte [r15 + 0x13]
movzx edx, byte [r15 + 0x17]
mov r8b, byte [r15 + 4]
movzx r10d, byte [r15 + 7]
movzx edi, byte [r15 + 6]
mov byte [rsp + 0x98], al
movzx eax, byte [r15 + 0xa]
shl r11d, 8
add r11d, eax
shl ebp, 8
movzx eax, byte [r15 + 9]
shl ecx, 8
shl edx, 8
shl r11d, 8
add r11d, eax
mov byte [rsp + 0x90], r8b
movzx eax, byte [r15 + 8]
shl r11d, 8
add r11d, eax
mov dword [rsp + 0xa0], r9d
movzx eax, byte [r15 + 0xe]
add ebp, eax
mov dword [rsp + 0x24], r11d
movzx eax, byte [r15 + 0xd]
shl ebp, 8
add ebp, eax
movzx eax, byte [r15 + 0xc]
shl ebp, 8
add ebp, eax
movzx eax, byte [r15 + 0x12]
add ecx, eax
movzx eax, byte [r15 + 0x11]
shl ecx, 8
add ecx, eax
movzx eax, byte [r15 + 0x10]
shl ecx, 8
add ecx, eax
movzx eax, byte [r15 + 0x16]
add edx, eax
mov dword [rsp + 0x28], ecx
movzx eax, byte [r15 + 0x15]
shl edx, 8
add edx, eax
movzx eax, byte [r15 + 0x14]
shl edx, 8
add r15, 0x18
add edx, eax
mov dword [rsp + 0x20], edx
cmp r9d, edx
jl 0x18000324c
test edx, edx
js 0x18000324c
lea eax, [r8 - 0x51]
cmp al, 3
ja 0x180003245
lea r14, [rbx + 0xa8]
mov ecx, r10d
shl ecx, 8
add ecx, edi
mov rdi, qword [r14]
mov dword [rsp + 0x2c], ecx
mov dword [rbx + 0x40], ecx
cmp rdi, r14
je 0x180002f2d
mov r13d, dword [rsp + 0x28]
mov rax, qword [rdi]
mov qword [rsp + 0x38], rax
mov eax, r13d
sub eax, dword [rdi + 0x24]
test eax, eax
jle 0x180002f1a
mov ecx, dword [rdi + 0x40]
test ecx, ecx
je 0x180002ed7
cmp dword [rdi + 0x18], 0
jne 0x180002ed7
xor edx, edx
call fcn.1800340d4
mov rdx, qword [rdi]
mov rcx, rdi
mov rax, qword [rdi + 8]
mov qword [rdx + 8], rax
mov rax, qword [rdi]
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
and qword [rdi], 0
and qword [rdi + 8], 0
mov rax, qword [0x1801514c8]
test rax, rax
je 0x180002f08
call rax
jmp 0x180002f0d
call fcn.1800e08ec
dec dword [rbx + 0x60]
mov rdi, qword [rsp + 0x38]
cmp rdi, r14
jne 0x180002eb1
mov r8b, byte [rsp + 0x90]
mov r13d, 1
mov r11d, dword [rsp + 0x24]
mov rdi, qword [r14]
lea r9, [rbx + 0x14]
cmp rdi, r14
je 0x180002f3f
mov r10d, dword [rdi + 0x24]
jmp 0x180002f42
mov r10d, dword [r9]
mov dword [rbx + 0x10], r10d
cmp r8b, 0x52
jne 0x180003096
mov r8d, dword [rbx + 0x4c]
sub r8d, r11d
js 0x180002fe3
mov r11d, dword [rbx + 0x2c]
test r11d, r11d
jne 0x180002f79
mov eax, r8d
mov dword [rbx + 0x2c], r8d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rbx + 0x28], eax
jmp 0x180002fc0
mov ecx, r8d
mov eax, r11d
sub eax, r8d
sub ecx, r11d
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 ecx, eax
mov dword [rbx + 0x28], eax
imul eax, r11d, 7
add eax, r8d
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [rbx + 0x2c], eax
mov r8d, eax
cmp eax, r13d
jge 0x180002fc0
mov dword [rbx + 0x2c], r13d
mov r8d, r13d
shl ecx, 2
mov edx, 0xea60
cmp dword [rbx + 0x50], ecx
mov eax, edx
cmovae ecx, dword [rbx + 0x50]
add ecx, r8d
cmp dword [rbx + 0x34], ecx
cmovae ecx, dword [rbx + 0x34]
cmp ecx, edx
cmovbe eax, ecx
mov dword [rbx + 0x30], eax
cmp ebp, r10d
js 0x18000304d
cmp ebp, dword [r9]
jns 0x18000304d
jmp 0x180002ff9
cmp ebp, dword [rdi + 0x24]
je 0x180003000
js 0x18000304d
mov rdi, qword [rdi]
cmp rdi, r14
jne 0x180002fef
jmp 0x18000304d
mov ecx, dword [rdi + 0x40]
test ecx, ecx
je 0x180003014
cmp dword [rdi + 0x18], 0
jne 0x180003014
xor edx, edx
call fcn.1800340d4
mov rdx, qword [rdi]
mov rcx, rdi
mov rax, qword [rdi + 8]
mov qword [rdx + 8], rax
mov rax, qword [rdi]
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
and qword [rdi], 0
and qword [rdi + 8], 0
mov rax, qword [0x1801514c8]
test rax, rax
je 0x180003045
call rax
jmp 0x18000304a
call fcn.1800e08ec
dec dword [rbx + 0x60]
mov rax, qword [r14]
lea rdx, [rbx + 0x14]
cmp rax, r14
je 0x18000305f
add rax, 0x24
jmp 0x180003062
mov rax, rdx
mov r8d, dword [rsp + 0xa8]
mov eax, dword [rax]
mov dword [rbx + 0x10], eax
test r8d, r8d
jne 0x180003081
mov r8d, r13d
mov dword [rsp + 0xa8], r13d
jmp 0x18000308e
mov eax, ebp
sub eax, r12d
test eax, eax
jle 0x18000315b
mov r12d, ebp
jmp 0x18000315b
cmp r8b, 0x51
jne 0x180003139
mov eax, ebp
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x18000314f
mov r8d, r11d
mov edx, ebp
mov rcx, rbx
call fcn.180002af4
cmp ebp, dword [rbx + 0x18]
js 0x18000314f
movsxd rcx, dword [rsp + 0x20]
mov rax, qword [0x1801514c0]
add rcx, 0x48
test rax, rax
je 0x1800030dd
call rax
jmp 0x1800030e2
call fcn.1800e0900
mov rdi, rax
mov dword [rax + 0x10], esi
mov dword [rax + 0x14], 0x51
movzx eax, byte [rsp + 0x98]
mov dword [rdi + 0x18], eax
mov eax, dword [rsp + 0x2c]
mov dword [rdi + 0x1c], eax
mov eax, dword [rsp + 0x24]
mov dword [rdi + 0x20], eax
mov eax, dword [rsp + 0x28]
mov dword [rdi + 0x28], eax
mov eax, dword [rsp + 0x20]
mov dword [rdi + 0x24], ebp
mov dword [rdi + 0x2c], eax
test eax, eax
je 0x18000312c
mov r8d, eax
lea rcx, [rdi + 0x44]
mov rdx, r15
call fcn.1800dbf60
mov rdx, rdi
mov rcx, rbx
call fcn.180002c18
jmp 0x18000314f
cmp r8b, 0x53
jne 0x180003145
or dword [rbx + 0x48], 2
jmp 0x18000314f
cmp r8b, 0x54
jne 0x180003245
mov r8d, dword [rsp + 0xa8]
lea rdx, [rbx + 0x14]
mov ecx, dword [rsp + 0x20]
mov r9d, dword [rsp + 0xa0]
add r15, rcx
sub r9d, ecx
cmp r9d, 0x18
jge 0x180002d73
test r8d, r8d
je 0x1800031a6
cmp r12d, dword [rbx + 0x10]
js 0x1800031a6
cmp r12d, dword [rdx]
jns 0x1800031a6
mov rcx, qword [r14]
cmp rcx, r14
je 0x1800031a6
cmp r12d, dword [rcx + 0x24]
mov rdx, qword [rcx]
js 0x1800031a6
je 0x18000319e
add dword [rcx + 0x38], r13d
mov rcx, rdx
cmp rdx, r14
jne 0x18000318f
mov eax, dword [rbx + 0x10]
sub eax, dword [rsp + 0x30]
test eax, eax
jle 0x180003241
mov r11d, dword [rbx + 0x44]
mov r9d, dword [rbx + 0x40]
cmp r11d, r9d
jae 0x180003241
mov r8d, dword [rbx + 8]
mov r10d, dword [rbx + 0x80]
cmp r11d, dword [rbx + 0x24]
jae 0x1800031e6
lea ecx, [r11 + 1]
lea eax, [r10 + r8]
mov dword [rbx + 0x44], ecx
mov dword [rbx + 0x80], eax
jmp 0x18000322d
cmp r10d, r8d
mov eax, r8d
cmovb r10d, r8d
imul eax, r8d
xor edx, edx
div r10d
mov edx, r8d
add eax, r10d
shr edx, 4
add edx, eax
lea eax, [r11 + 1]
imul eax, r8d
mov dword [rbx + 0x80], edx
cmp eax, edx
ja 0x180003241
lea eax, [r8 - 1]
add eax, edx
test r8d, r8d
cmovne r13d, r8d
xor edx, edx
div r13d
mov ecx, eax
mov dword [rbx + 0x44], eax
cmp ecx, r9d
jbe 0x180003241
mov dword [rbx + 0x44], r9d
imul r9d, r8d
mov dword [rbx + 0x80], r9d
xor eax, eax
jmp 0x180003256
mov eax, 0xfffffffd
jmp 0x180003256
mov eax, 0xfffffffe
jmp 0x180003256
or eax, 0xffffffff
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret