Function at 0x180002df4
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 0x18000331b
cmp r9d, 0x18
jl 0x18000331b
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 0x18000331b
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 0x180003314
test edx, edx
js 0x180003314
lea eax, [r8 - 0x51]
cmp al, 3
ja 0x18000330d
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 0x180002ff5
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 0x180002fe2
mov ecx, dword [rdi + 0x40]
test ecx, ecx
je 0x180002f9f
cmp dword [rdi + 0x18], 0
jne 0x180002f9f
xor edx, edx
call fcn.180034c70
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 [0x180123878]
test rax, rax
je 0x180002fd0
call rax
jmp 0x180002fd5
call fcn.1800bf7fc
dec dword [rbx + 0x60]
mov rdi, qword [rsp + 0x38]
cmp rdi, r14
jne 0x180002f79
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 0x180003007
mov r10d, dword [rdi + 0x24]
jmp 0x18000300a
mov r10d, dword [r9]
mov dword [rbx + 0x10], r10d
cmp r8b, 0x52
jne 0x18000315e
mov r8d, dword [rbx + 0x4c]
sub r8d, r11d
js 0x1800030ab
mov r11d, dword [rbx + 0x2c]
test r11d, r11d
jne 0x180003041
mov eax, r8d
mov dword [rbx + 0x2c], r8d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rbx + 0x28], eax
jmp 0x180003088
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 0x180003088
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 0x180003115
cmp ebp, dword [r9]
jns 0x180003115
jmp 0x1800030c1
cmp ebp, dword [rdi + 0x24]
je 0x1800030c8
js 0x180003115
mov rdi, qword [rdi]
cmp rdi, r14
jne 0x1800030b7
jmp 0x180003115
mov ecx, dword [rdi + 0x40]
test ecx, ecx
je 0x1800030dc
cmp dword [rdi + 0x18], 0
jne 0x1800030dc
xor edx, edx
call fcn.180034c70
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 [0x180123878]
test rax, rax
je 0x18000310d
call rax
jmp 0x180003112
call fcn.1800bf7fc
dec dword [rbx + 0x60]
mov rax, qword [r14]
lea rdx, [rbx + 0x14]
cmp rax, r14
je 0x180003127
add rax, 0x24
jmp 0x18000312a
mov rax, rdx
mov r8d, dword [rsp + 0xa8]
mov eax, dword [rax]
mov dword [rbx + 0x10], eax
test r8d, r8d
jne 0x180003149
mov r8d, r13d
mov dword [rsp + 0xa8], r13d
jmp 0x180003156
mov eax, ebp
sub eax, r12d
test eax, eax
jle 0x180003223
mov r12d, ebp
jmp 0x180003223
cmp r8b, 0x51
jne 0x180003201
mov eax, ebp
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x180003217
mov r8d, r11d
mov edx, ebp
mov rcx, rbx
call fcn.180002bbc
cmp ebp, dword [rbx + 0x18]
js 0x180003217
movsxd rcx, dword [rsp + 0x20]
mov rax, qword [0x180123870]
add rcx, 0x48
test rax, rax
je 0x1800031a5
call rax
jmp 0x1800031aa
call fcn.1800bf810
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 0x1800031f4
mov r8d, eax
lea rcx, [rdi + 0x44]
mov rdx, r15
call fcn.1800baef0
mov rdx, rdi
mov rcx, rbx
call fcn.180002ce0
jmp 0x180003217
cmp r8b, 0x53
jne 0x18000320d
or dword [rbx + 0x48], 2
jmp 0x180003217
cmp r8b, 0x54
jne 0x18000330d
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 0x180002e3b
test r8d, r8d
je 0x18000326e
cmp r12d, dword [rbx + 0x10]
js 0x18000326e
cmp r12d, dword [rdx]
jns 0x18000326e
mov rcx, qword [r14]
cmp rcx, r14
je 0x18000326e
cmp r12d, dword [rcx + 0x24]
mov rdx, qword [rcx]
js 0x18000326e
je 0x180003266
add dword [rcx + 0x38], r13d
mov rcx, rdx
cmp rdx, r14
jne 0x180003257
mov eax, dword [rbx + 0x10]
sub eax, dword [rsp + 0x30]
test eax, eax
jle 0x180003309
mov r11d, dword [rbx + 0x44]
mov r9d, dword [rbx + 0x40]
cmp r11d, r9d
jae 0x180003309
mov r8d, dword [rbx + 8]
mov r10d, dword [rbx + 0x80]
cmp r11d, dword [rbx + 0x24]
jae 0x1800032ae
lea ecx, [r11 + 1]
lea eax, [r10 + r8]
mov dword [rbx + 0x44], ecx
mov dword [rbx + 0x80], eax
jmp 0x1800032f5
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 0x180003309
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 0x180003309
mov dword [rbx + 0x44], r9d
imul r9d, r8d
mov dword [rbx + 0x80], r9d
xor eax, eax
jmp 0x18000331e
mov eax, 0xfffffffd
jmp 0x18000331e
mov eax, 0xfffffffe
jmp 0x18000331e
or eax, 0xffffffff
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret