Function at 0x140046220
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xd0
mov rax, qword [0x1400c5040]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov rax, qword [rcx + 0x98]
xor r12d, r12d
mov rbx, qword [rcx + 0xa0]
mov r15d, edx
mov qword [rbp - 0x61], rax
mov rsi, rcx
mov eax, edx
mov qword [rcx + 0xd8], r12
neg eax
mov rcx, rbx
cmovs eax, edx
xor edx, edx
movzx r13d, ax
call fcn.140016550
test eax, eax
jne 0x140046918
lea r8, [rsp + 0x28]
mov rcx, rbx
lea rdx, [0x14009a268]
call fcn.140015f40
test eax, eax
jne 0x140046918
mov eax, 0x5a4d
mov dword [rsp + 0x20], 2
cmp word [rsp + 0x28], ax
jne 0x14004690a
movzx edx, word [rbp - 0x7f]
mov rcx, rbx
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 0x7d]
mov rcx, rbx
lea rdx, [0x14009a280]
call fcn.140015f40
mov edx, eax
test eax, eax
jne 0x14004691d
movzx eax, word [rbp - 0x7d]
mov ecx, 0x454e
mov edx, 2
mov dword [rsp + 0x20], edx
cmp ax, cx
jne 0x1400464f2
movzx edx, word [rbp - 0x7b]
mov rcx, rbx
movzx eax, word [rbp - 0x7f]
mov r14d, r12d
add edx, eax
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
movzx edx, word [rbp - 0x79]
mov rcx, rbx
movzx eax, word [rbp - 0x7b]
sub edx, eax
call fcn.1400159e0
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
mov rcx, rbx
call fcn.140015ca0
movzx r12d, ax
mov rcx, rbx
cmp r12d, 0x10
jbe 0x14004637e
mov edx, 3
mov dword [rsp + 0x20], edx
call fcn.140015ad0
mov edx, dword [rsp + 0x20]
jmp 0x14004691d
call fcn.140015ca0
movzx edi, ax
test ax, ax
je 0x1400463f0
mov r14d, 0x8008
mov rcx, rbx
call fcn.140015ca0
cmp di, r14w
je 0x1400463d4
movzx eax, ax
lea rcx, [rax + rax*2]
lea rcx, [rcx*4 + 4]
add qword [rbx + 0x38], rcx
mov rcx, rbx
call fcn.140015ca0
movzx edi, ax
test ax, ax
jne 0x140046391
mov rcx, rbx
call fcn.140015ad0
mov edx, 3
jmp 0x14004691d
mov rcx, rbx
movzx edi, ax
call fcn.140015e30
mov r14d, dword [rbx + 0x38]
sub r14d, dword [rbx + 0x40]
add r14d, 4
add r14d, eax
jmp 0x1400463f2
xor edi, edi
mov rcx, rbx
call fcn.140015ad0
test di, di
je 0x1400468f3
test r14d, r14d
je 0x1400468f3
movzx edx, di
imul eax, edx, 0x76
cmp eax, dword [rbx + 8]
ja 0x1400468f3
mov dword [rsi], edx
test r15d, r15d
js 0x140046375
cmp r13d, edx
jae 0x1400468ff
mov rcx, qword [rbp - 0x61]
lea r8, [rsp + 0x20]
mov edx, 0xb8
call fcn.1400186d0
mov edx, dword [rsp + 0x20]
mov qword [rsi + 0xd8], rax
test edx, edx
jne 0x14004691d
lea eax, [r13*2]
mov rcx, rbx
add eax, r13d
lea edx, [r14 + rax*4]
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x140046906
mov edx, recv
mov rcx, rbx
call fcn.1400159e0
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x140046906
mov rcx, rbx
call fcn.140015ca0
movzx edx, ax
mov ecx, r12d
mov rax, qword [rsi + 0xd8]
shl edx, cl
mov rcx, rbx
mov dword [rax], edx
call fcn.140015ca0
movzx edx, ax
mov ecx, r12d
mov rax, qword [rsi + 0xd8]
shl edx, cl
mov rcx, rbx
mov dword [rax + 0xa8], edx
add qword [rbx + 0x38], 8
call fcn.140015ad0
mov rcx, qword [rsi + 0xd8]
mov rdx, rbx
call fcn.1400469d0
mov edx, eax
mov dword [rsp + 0x20], eax
jmp 0x1400468ed
mov edi, 0x4550
cmp ax, di
jne 0x1400468ed
movzx edx, word [rbp - 0x7f]
mov rcx, rbx
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 0x51]
mov rcx, rbx
lea rdx, [0x14009a298]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
cmp dword [rbp - 0x51], edi
jne 0x1400468f3
mov eax, 0x14c
cmp word [rbp - 0x4d], ax
jne 0x1400468f3
mov eax, 0xe0
cmp word [rbp - 0x49], ax
jne 0x1400468f3
mov eax, 0x10b
cmp word [rbp - 0x47], ax
jne 0x1400468f3
movzx edi, r12w
mov dword [rsi], r12d
cmp r12w, word [rbp - 0x4b]
jae 0x1400468f3
nop dword [rax]
nop word [rax + rax]
lea r8, [rbp - 0x39]
mov rcx, rbx
lea rdx, [0x14009a2d0]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
mov eax, dword [rbp - 0x31]
cmp dword [rbp - 0x45], eax
je 0x1400465cc
inc di
cmp di, word [rbp - 0x4b]
jb 0x140046590
mov edx, 3
jmp 0x14004691d
mov edx, dword [rbp - 0x29]
mov rcx, rbx
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 1]
mov rcx, rbx
lea rdx, [0x14009a2f0]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
movzx ecx, word [rbp + 0xd]
movzx eax, word [rbp + 0xb]
mov r15d, dword [rbp - 0x29]
mov word [rsp + 0x26], r12w
add ecx, eax
je 0x1400468ed
mov r8d, r12d
nop dword [rax]
nop word [rax + rax]
lea r8d, [r8 + 2]
mov rcx, rbx
lea edx, [r15 + r8*8]
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 0x69]
mov rcx, rbx
lea rdx, [0x14009a310]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
mov ecx, dword [rbp - 0x65]
test ecx, ecx
jns 0x1400468f3
mov eax, dword [rbp - 0x29]
btr ecx, 0x1f
mov dword [rbp - 0x65], ecx
lea edi, [rcx + rax]
lea edx, [rcx + rax]
mov dword [rbp - 0x75], edi
mov rcx, rbx
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 0x11]
mov rcx, rbx
lea rdx, [0x14009a2f0]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
movzx ecx, word [rbp - 3]
movzx eax, word [rbp - 5]
mov word [rsp + 0x24], r12w
add ecx, eax
je 0x1400468c9
mov r8d, r12d
nop dword [rax]
lea r8d, [r8 + 2]
mov rcx, rbx
lea edx, [rdi + r8*8]
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 0x71]
mov rcx, rbx
lea rdx, [0x14009a310]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
mov ecx, dword [rbp - 0x6d]
test ecx, ecx
jns 0x1400468f3
mov eax, dword [rbp - 0x29]
btr ecx, 0x1f
mov dword [rbp - 0x6d], ecx
lea r14d, [rcx + rax]
lea edx, [rcx + rax]
mov rcx, rbx
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 0x21]
mov rcx, rbx
lea rdx, [0x14009a2f0]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
movzx ecx, word [rbp - 0x13]
movzx edi, r12w
movzx eax, word [rbp - 0x15]
add ecx, eax
je 0x1400468a2
mov r8d, r12d
nop dword [rax]
lea r8d, [r8 + 2]
mov rcx, rbx
lea edx, [r14 + r8*8]
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp - 0x59]
mov rcx, rbx
lea rdx, [0x14009a310]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
test dword [rbp - 0x6d], 0x80000000
jne 0x1400468f3
cmp dword [rbp - 0x69], 8
jne 0x140046888
mov edx, dword [rbp - 0x55]
mov rcx, rbx
add edx, r15d
call fcn.140016550
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
lea r8, [rbp + 0xf]
mov rcx, rbx
lea rdx, [0x14009a320]
call fcn.140015f40
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x14004691d
cmp r13d, dword [rsi]
jne 0x140046886
mov rcx, qword [rbp - 0x61]
lea r8, [rsp + 0x20]
mov edx, 0xb8
call fcn.1400186d0
mov edx, dword [rsp + 0x20]
mov qword [rsi + 0xd8], rax
test edx, edx
jne 0x14004691d
mov ecx, dword [rbp + 0xf]
mov rdx, rbx
sub ecx, dword [rbp - 0x31]
add ecx, dword [rbp - 0x29]
mov dword [rax], ecx
mov rcx, qword [rsi + 0xd8]
mov eax, dword [rbp + 0x13]
mov dword [rcx + 0xa8], eax
mov rcx, qword [rsi + 0xd8]
call fcn.1400469d0
mov dword [rsp + 0x20], eax
mov edx, eax
test eax, eax
jne 0x140046906
inc dword [rsi]
movzx ecx, word [rbp - 0x13]
inc di
movzx eax, word [rbp - 0x15]
movzx r8d, di
add ecx, eax
cmp r8d, ecx
jb 0x140046790
movzx edi, word [rsp + 0x24]
movzx ecx, word [rbp - 3]
inc di
movzx eax, word [rbp - 5]
movzx r8d, di
add ecx, eax
mov word [rsp + 0x24], di
mov edi, dword [rbp - 0x75]
cmp r8d, ecx
jb 0x1400466e0
movzx edi, word [rsp + 0x26]
movzx ecx, word [rbp + 0xd]
inc di
movzx eax, word [rbp + 0xb]
movzx r8d, di
add ecx, eax
mov word [rsp + 0x26], di
cmp r8d, ecx
jb 0x140046630
mov eax, dword [rsi]
test eax, eax
jne 0x1400468fa
mov edx, 3
jmp 0x14004691d
cmp r13d, eax
jl 0x140046906
mov edx, 6
jmp 0x14004691d
test edx, edx
je 0x14004691d
mov rcx, rsi
call fcn.140046950
mov edx, dword [rsp + 0x20]
jmp 0x14004691d
mov edx, 2
mov eax, edx
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.140074360
mov rbx, qword [rsp + 0x120]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret