Function at 0x180006e90
Capabilities:
Parse pe header

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0xa8], rbx
mov rbp, r8
mov rdi, rdx
xor r14d, r14d
mov dword [rsp + 0x38], r14d
mov r12, qword [rcx]
mov r15, qword [rcx + 8]
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.180008830
mov rbx, qword [rsp + 0x30]
cmp dword [rbx - 8], 1
jle 0x180006f0a
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.1800038b0
mov rbx, qword [rsp + 0x30]
test r12, r12
je 0x1800070b8
mov r9, rbx
lea r8, [rsp + 0x38]
mov edx, r15d
mov rcx, r12
call fcn.18000b750
test eax, eax
je 0x1800070b8
mov r13d, dword [rsp + 0x38]
test r13d, r13d
je 0x1800070b8
mov rcx, r13
call fcn.1800135c8
mov rsi, rax
mov r8, r13
xor edx, edx
mov rcx, rax
call fcn.180014bb0
cmp dword [rbx - 8], 1
jle 0x180006f6c
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.1800038b0
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x20], rbx
mov r9d, r13d
mov r8, rsi
mov edx, r15d
mov rcx, r12
call fcn.18000be60
or r12, 0xffffffffffffffff
test eax, eax
jne 0x180006fdf
xor eax, eax
mov rcx, r12
lea rdi, [0x180025518]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180025518]
lea rcx, [0x18003c8d0]
call fcn.180002fc0
xor eax, eax
mov rcx, r12
lea rdi, str._ustr
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str._ustr
lea rcx, [0x18003c8d0]
call fcn.180002fc0
jmp 0x1800070a9
cmp r13d, 0x1000
jb 0x180007059
test rsi, rsi
je 0x180007059
mov eax, 0x5a4d
cmp ax, word [rsi]
jne 0x180007059
movsxd rax, dword [rsi + 0x3c]
cmp dword [rax + rsi], 0x4550
jne 0x180007059
test r13d, r13d
je 0x180007051
mov rcx, qword [rbp]
test rcx, rcx
jne 0x180007020
mov rcx, r13
call fcn.180013650
mov qword [rbp], rax
jmp 0x180007032
mov rax, qword [rbp + 8]
lea rdx, [r13 + rax]
call fcn.180013708
mov qword [rbp], rax
mov rcx, qword [rbp]
test rcx, rcx
je 0x180007051
add rcx, qword [rbp + 8]
mov r9, r13
mov r8, rsi
mov rdx, r13
call fcn.1800137dc
add qword [rbp + 8], r13
mov r14d, 1
jmp 0x1800070a9
xor eax, eax
mov rcx, r12
lea rdi, [0x180025518]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180025518]
lea rcx, [0x18003c8d0]
call fcn.180002fc0
xor eax, eax
mov rcx, r12
lea rdi, str._u6pf
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str._u6pf
lea rcx, [0x18003c8d0]
call fcn.180002fc0
test rsi, rsi
je 0x18000710d
mov rcx, rsi
call fcn.1800135d0
jmp 0x18000710d
xor eax, eax
or r12, 0xffffffffffffffff
mov rcx, r12
lea rdi, [0x180025518]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180025518]
lea rcx, [0x18003c8d0]
call fcn.180002fc0
xor eax, eax
mov rcx, r12
lea rdi, str._ulen
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str._ulen
lea rcx, [0x18003c8d0]
call fcn.180002fc0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x18000712d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, r14d
jmp 0x180007130
mov eax, r14d
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret