Function at 0x14003d65c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xfc0]
mov eax, 0x10c0
call fcn.140055f20
sub rsp, rax
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x1100], rbx
mov rax, qword [0x140081ee0]
xor rax, rsp
mov qword [rbp + 0xfb0], rax
mov rbx, r8
mov rdi, rdx
mov qword [rbp - 0x80], rcx
mov rcx, rdx
call fcn.140020b88
mov qword [rsp + 0x78], rax
xor r15d, r15d
mov byte [rsp + 0x30], r15b
xor edx, edx
mov rcx, rdi
call fcn.140008f4c
test al, al
je 0x14003d724
mov byte [rsp + 0x30], 1
mov cl, byte [rdi + 0x7f8d]
mov byte [rbx + 0x7f8d], cl
mov cl, byte [rdi + 0x7f8c]
mov byte [rbx + 0x7f8c], cl
mov al, byte [rdi + 0x7f8f]
mov byte [rbx + 0x7f8f], al
mov al, byte [rdi + 0x7f93]
mov byte [rbx + 0x7f93], al
mov al, byte [rdi + 0x7f94]
mov byte [rbx + 0x7f94], al
mov al, byte [rdi + 0x7f91]
mov byte [rbx + 0x7f91], al
mov al, byte [rdi + 0x7f92]
mov byte [rbx + 0x7f92], al
mov dword [rbx + 0x3490], r15d
mov word [rbx + 0x348c], r15w
mov byte [rsp + 0x20], r15b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14000b340
mov byte [rsp + 0x20], r15b
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, rbx
call fcn.14000b340
mov rax, qword [rdi]
mov rdx, qword [rdi + 0x7f78]
add rdx, 0xd
xor r8d, r8d
mov rcx, rdi
call qword [rax + 0x18]
mov r8d, dword [rbx + 0x3484]
sub r8d, 0xd
mov rdx, rbx
mov rcx, rdi
call fcn.140020834
mov rax, qword [rdi]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [rax + 0x18]
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov edx, 0x10000
lea rcx, [rsp + 0x58]
call fcn.1400079a4
nop
mov r13, r15
mov rax, qword [rdi]
mov rsi, qword [rsp + 0x60]
mov r8, rsi
mov rdx, qword [rsp + 0x58]
mov rcx, rdi
call qword [rax + 0x10]
lea r12, [rsi - 0x1000]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x50], r12
mov esi, r15d
mov dword [rsp + 0x34], r15d
mov dword [rsp + 0x38], r15d
lea r14, [rbx + 0x34f0]
xor edx, edx
mov rcx, r14
call fcn.140024480
inc esi
mov dword [rsp + 0x48], esi
test esi, 0xfffff
jne 0x14003d819
call fcn.140046bb4
xor edx, edx
mov rax, r13
div r12
mov rsi, rdx
add rsi, qword [rsp + 0x58]
movzx r8d, byte [rsi + 2]
mov dword [rbx + 0x34f4], r8d
movzx edx, byte [rsi + 6]
shl edx, 8
movzx eax, byte [rsi + 5]
add edx, eax
mov dword [rbx + 0x34fc], edx
movzx r15d, byte [rsi + 0x1b]
shl r15d, 8
movzx eax, byte [rsi + 0x1a]
add r15d, eax
cmp r8d, 0x74
jne 0x14003dcf1
cmp edx, 0x1000
jae 0x14003dcf1
lea eax, [r15 - 1]
cmp eax, 0x7fe
ja 0x14003dcf1
movsxd r12, r15d
cmp r12, 0x800
jae 0x14003dcfa
movzx ecx, byte [rsi + 1]
shl ecx, 8
movzx eax, byte [rsi]
add ecx, eax
mov dword [r14], ecx
movzx ecx, byte [rsi + 4]
shl ecx, 8
movzx eax, byte [rsi + 3]
add ecx, eax
mov dword [rbx + 0x34f8], ecx
movzx ecx, byte [rsi + 0xa]
shl ecx, 8
movzx eax, byte [rsi + 9]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 8]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 7]
add ecx, eax
mov dword [rbx + 0x3504], ecx
movzx ecx, byte [rsi + 0xe]
shl ecx, 8
movzx eax, byte [rsi + 0xd]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0xc]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0xb]
add ecx, eax
mov dword [rsp + 0x4c], ecx
mov al, byte [rsi + 0xf]
mov byte [rbx + 0x3508], al
mov dword [rbx + 0x4560], 2
movzx ecx, byte [rsi + 0x13]
shl ecx, 8
movzx eax, byte [rsi + 0x12]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0x11]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0x10]
add ecx, eax
mov dword [rbx + 0x4564], ecx
movzx edx, byte [rsi + 0x17]
shl edx, 8
movzx eax, byte [rsi + 0x16]
add edx, eax
shl edx, 8
movzx eax, byte [rsi + 0x15]
add edx, eax
shl edx, 8
movzx eax, byte [rsi + 0x14]
add edx, eax
lea rcx, [rbx + 0x4530]
call fcn.140047710
mov al, byte [rsi + 0x18]
mov byte [rbx + 0x3509], al
mov al, byte [rsi + 0x19]
mov byte [rbx + 0x350a], al
movzx ecx, byte [rsi + 0x1f]
shl ecx, 8
movzx eax, byte [rsi + 0x1e]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0x1d]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0x1c]
add ecx, eax
mov dword [rbx + 0x350c], ecx
xor r9d, r9d
mov ecx, r9d
mov edx, r9d
mov r8d, dword [rbx + 0x34f8]
and r8d, 0x100
je 0x14003d9e8
movzx ecx, byte [rsi + 0x23]
shl ecx, 8
movzx eax, byte [rsi + 0x22]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0x21]
add ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0x20]
add ecx, eax
movzx edx, byte [rsi + 0x27]
shl edx, 8
movzx eax, byte [rsi + 0x26]
add edx, eax
shl edx, 8
movzx eax, byte [rsi + 0x25]
add edx, eax
shl edx, 8
movzx eax, byte [rsi + 0x24]
add edx, eax
shl rcx, 0x20
mov eax, dword [rbx + 0x3504]
add rcx, rax
mov qword [rbx + 0x4548], rcx
mov ecx, edx
shl rcx, 0x20
mov eax, dword [rsp + 0x4c]
add rcx, rax
mov qword [rbx + 0x4550], rcx
mov eax, 0x20
test r8d, r8d
lea ecx, [rax + 8]
cmovne eax, ecx
movsxd rdx, eax
add rdx, rsi
mov r8, r12
lea rcx, [rbp - 0x50]
call fcn.140059180
test dword [rbx + 0x34f8], 0x200
je 0x14003da8a
lea rcx, [rbp - 0x70]
call fcn.14001b6e0
lea rcx, [rbp - 0x50]
or rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x14003da4d
inc rax
lea r12, [rbx + 0x3510]
movsxd r9, r15d
sub r9, rax
lea r8, [rbp - 0x50]
add r8, rax
mov qword [rsp + 0x28], 0x800
mov qword [rsp + 0x20], r12
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.14001b72c
jmp 0x14003da99
lea r12, [rbx + 0x3510]
xor r9d, r9d
mov word [r12], r9w
mov edx, dword [rbx + 0x34f8]
mov r8d, edx
and r8d, 0x400
mov r10d, 0x28
je 0x14003dace
bt edx, 8
lea eax, [r10 - 8]
cmovb eax, r10d
movsxd rcx, r15d
add rax, rcx
mov rcx, qword [rax + rsi]
mov qword [rbx + 0x4591], rcx
mov eax, dword [rbx + 0x34fc]
sub eax, 2
test eax, eax
jle 0x14003dcfa
test dl, 8
je 0x14003daff
bt edx, 8
mov eax, 0x20
cmovb eax, r10d
test r8d, r8d
je 0x14003daf9
add eax, 8
add eax, 0xfffffffe
add eax, r15d
movsxd r8, eax
lea rdx, [rsi + 2]
or ecx, 0xffffffff
call fcn.140017ac0
not ax
mov cl, byte [rbx + 0x3509]
sub cl, 0xf
cmp cl, 0x19
ja 0x14003db4b
mov cl, byte [rbx + 0x350a]
sub cl, 0x30
cmp cl, 8
ja 0x14003dcfa
cmp byte [rbx + 0x3508], 0x20
ja 0x14003dcfa
movzx eax, ax
cmp eax, dword [r14]
sete al
xor esi, esi
jmp 0x14003db50
xor esi, esi
mov al, sil
test al, al
je 0x14003dcfa
mov rax, qword [rdi]
mov edx, dword [rbx + 0x34fc]
add rdx, r13
xor r8d, r8d
mov rcx, rdi
call qword [rax + 0x18]
movsxd rax, r15d
mov byte [rbp + rax - 0x50], sil
call fcn.140046bb4
cmp word [r12], si
jne 0x14003dbb6
mov dl, 1
lea rcx, [rbp - 0x50]
call fcn.1400323c8
mov esi, 0x800
mov r8d, esi
lea rdx, [rbp + 0x7b0]
lea rcx, [rbp - 0x50]
call fcn.140045cd8
mov r8d, esi
mov rdx, r12
lea rcx, [rbp + 0x7b0]
call fcn.1400489f0
mov ecx, dword [rbx + 0x34f8]
mov eax, ecx
btr eax, 0xc
or dword [rsp + 0x38], eax
bt ecx, 8
mov eax, 0x20
lea edx, [rax + 8]
cmovb eax, edx
bt ecx, 0xa
jae 0x14003dbde
add eax, 8
add eax, r15d
mov dword [rbx + 0x34fc], eax
mov rdx, r12
mov ecx, 0x69
call fcn.1400013b0
mov esi, dword [rsp + 0x34]
mov r9d, 1
add esi, r9d
mov dword [rsp + 0x34], esi
mov edx, dword [r14 + 8]
mov eax, edx
shr eax, 0xe
and al, r9b
mov byte [r14 + 0x10], al
mov al, dl
and al, r9b
mov byte [r14 + 0x1098], al
mov eax, edx
shr eax, 1
and al, r9b
mov byte [r14 + 0x1099], al
mov eax, edx
shr eax, 2
and al, r9b
mov byte [r14 + 0x109b], al
mov eax, edx
shr eax, 0xa
and al, r9b
mov byte [r14 + 0x10a0], al
mov eax, edx
shr eax, 4
and al, r9b
mov byte [r14 + 0x10f0], al
mov eax, edx
and eax, 0xe0
cmp al, 0xe0
sete al
mov byte [r14 + 0x10f1], al
xor r15d, r15d
test al, al
je 0x14003dc7b
mov r8d, r15d
jmp 0x14003dc8c
mov ecx, edx
shr ecx, 5
and ecx, 7
mov r8d, 0x10000
shl r8d, cl
movsxd rax, r8d
mov qword [r14 + 0x10f8], rax
mov eax, edx
shr eax, 3
and al, r9b
mov byte [r14 + 0x10f2], al
mov eax, edx
shr eax, 0xb
and al, r9b
mov byte [r14 + 0x10f3], al
shr edx, 8
and dl, r9b
mov byte [r14 + 0x1101], dl
add byte [r14 + 0x1a], 0xd0
mov byte [rsp + 0x20], r15b
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 2]
mov rcx, rbx
call fcn.14000b340
mov r8, qword [rbx + 0x4548]
mov rdx, rbx
mov rcx, rdi
call fcn.140020834
jmp 0x14003dd01
mov esi, dword [rsp + 0x34]
xor r15d, r15d
jmp 0x14003dd06
mov esi, dword [rsp + 0x34]
xor r15d, r15d
mov r12, qword [rsp + 0x40]
inc r13
mov rax, qword [rsp + 0x78]
add rax, 0xffffffffffffffe0
cmp r13, rax
jge 0x14003dd60
xor edx, edx
mov rax, r13
div r12
test rdx, rdx
mov esi, dword [rsp + 0x48]
jne 0x14003d806
mov rax, qword [rdi]
xor r8d, r8d
mov r15, qword [rsp + 0x50]
mov rdx, r15
mov rcx, rdi
call qword [rax + 0x18]
mov rax, qword [rdi]
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, rdi
call qword [rax + 0x10]
add r15, r12
mov qword [rsp + 0x50], r15
jmp 0x14003d806
test byte [rsp + 0x38], 3
je 0x14003dd6e
mov byte [rbx + 0x7f8d], 1
test esi, esi
je 0x14003dd9a
cmp byte [rsp + 0x30], r15b
jne 0x14003dd96
mov rax, qword [rbp - 0x80]
cmp byte [rax + 0x619c], r15b
jne 0x14003dd96
call fcn.140048864
test al, al
je 0x14003dd96
mov byte [rbx + 0x7f8c], 1
test esi, esi
jne 0x14003ddbb
lea rdx, [rdi + 0x26]
mov ecx, 0x40
call fcn.1400013b0
mov edx, 0xa
lea rcx, [0x140094860]
call fcn.14001bf08
jmp 0x14003ddfe
mov rax, qword [rbx]
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [rax + 0x18]
mov byte [rsp + 0x20], r15b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14000b340
mov byte [rsp + 0x20], r15b
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, rbx
call fcn.14000b340
mov rcx, rbx
call fcn.1400207cc
nop
cmp qword [rsp + 0x58], r15
je 0x14003de0f
mov rcx, qword [rsp + 0x58]
call fcn.14005a938
mov rcx, qword [rbp + 0xfb0]
xor rcx, rsp
call fcn.140055f90
mov rbx, qword [rsp + 0x1100]
add rsp, 0x10c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret