Function at 0x140102c00
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
movzx r9d, byte [rcx]
mov rdi, rdx
mov r10, rcx
lea eax, [r9 - 9]
lea r11, [0x140000000]
cmp eax, 0x75
ja case.0x140102c43.34
cdqe
mov ebx, 1
movzx eax, byte [r11 + rax + 0x1033cc]
mov r8d, dword [r11 + rax*4 + 0x103364]
add r8, r11
jmp r8
movzx eax, byte [r10 + 1]
inc r10
test byte [rax + r11 + 0x1bed30], bl
je 0x140102c76
nop dword [rax + rax]
movzx eax, byte [r10 + 1]
lea r10, [r10 + 1]
inc ebx
test byte [rax + r11 + 0x1bed30], 1
jne 0x140102c60
mov dword [rdx], 0x95
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x2d
jne 0x140102cc6
mov edx, 2
add r10, rdx
movzx eax, byte [r10]
test eax, eax
je 0x140102cb3
nop
cmp eax, 0xa
je 0x140102cb3
movzx eax, byte [r10 + 1]
inc r10
inc edx
test eax, eax
jne 0x140102ca0
mov dword [rdi], 0x95
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x57
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], socket
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], reloc.WS2_32.dll_socket
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], ebx
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x56
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x58
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x2a
jne 0x140102d81
movzx eax, byte [rcx + 2]
test al, al
je 0x140102d81
mov ecx, 3
movzx eax, al
add r10, rcx
cmp eax, 0x2a
jne 0x140102d5d
cmp byte [r10], 0x2f
je 0x140102d6c
movzx eax, byte [r10]
test eax, eax
je 0x140102d6e
inc ecx
inc r10
jmp 0x140102d52
inc ecx
mov dword [rdx], 0x95
mov eax, ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x59
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5a
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4c
xor edx, edx
cmp byte [rcx + 1], 0x3d
sete dl
lea eax, [rdx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
cmp eax, 0x3d
jne 0x140102de5
mov dword [rdx], 0x4e
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x140102e00
mov dword [rdx], 0x4b
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3c
jne 0x140102e1b
mov dword [rdx], 0x54
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4f
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
cmp eax, 0x3d
jne 0x140102e4e
mov dword [rdx], 0x50
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x140102e69
mov dword [rdx], 0x55
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4d
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x3d
mov eax, 2
je 0x140102e9c
mov r8d, 0x94
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4b
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x7c
je 0x140102ec7
mov dword [rdx], 0x53
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5b
mov eax, 2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x19
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x52
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5d
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx edx, byte [rcx + 1]
inc rcx
test edx, edx
je 0x140102f4e
add r10, 2
cmp edx, r9d
jne 0x140102f3e
movzx eax, byte [r10]
cmp eax, r9d
jne 0x140102f4e
inc ebx
inc r10
inc rcx
movzx edx, byte [rcx + 1]
inc rcx
inc ebx
inc r10
test edx, edx
jne 0x140102f28
cmp edx, 0x27
jne 0x140102f67
mov dword [rdi], 0x5e
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test edx, edx
je 0x140102f80
mov eax, 0x1a
mov dword [rdi], eax
lea eax, [rbx + 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov r8d, 0x94
mov eax, ebx
mov dword [rdi], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
test byte [rax + r11 + 0x1bed30], 4
jne case.0x140102c43.24
mov dword [rdx], 0x76
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x81
xor edx, edx
test byte [r9 + r11 + 0x1bed30], 4
je 0x140102fe5
nop dword [rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + r11 + 0x1bed30], 4
jne 0x140102fd0
movsxd rax, edx
cmp byte [rax + r10], 0x2e
jne 0x140103020
inc edx
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + r11 + 0x1bed30], 4
je 0x14010301a
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + r11 + 0x1bed30], 4
jne 0x140103005
mov dword [rdi], 0x82
movsxd rcx, edx
movzx eax, byte [rcx + r10]
sub al, 0x45
test al, 0xdf
jne 0x14010308b
movzx eax, byte [rcx + r10 + 1]
test byte [rax + r11 + 0x1bed30], 4
jne 0x140103056
sub al, 0x2b
test al, 0xfd
jne 0x14010308b
movzx eax, byte [rcx + r10 + 2]
test byte [rax + r11 + 0x1bed30], 4
je 0x14010308b
add edx, 2
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + r11 + 0x1bed30], 4
je 0x140103085
nop dword [rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + r11 + 0x1bed30], 4
jne 0x140103070
mov dword [rdi], 0x82
movsxd r9, edx
add r9, r10
movzx eax, byte [r9]
test byte [rax + r11 + 0x1bed30], 0x46
je 0x1401030c9
mov r8d, 0x94
nop word [rax + rax]
movzx ecx, byte [r9 + 1]
lea r9, [r9 + 1]
inc edx
test byte [rcx + r11 + 0x1bed30], 0x46
mov dword [rdi], r8d
jne 0x1401030b0
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp r9d, 0x5d
je 0x1401030f4
inc r10
nop
movzx r9d, byte [r10]
test r9d, r9d
je 0x1401030f4
inc ebx
inc r10
cmp r9d, 0x5d
jne 0x1401030e0
mov eax, 0x1a
mov r8d, 0x94
cmp r9d, 0x5d
cmove r8d, eax
mov eax, ebx
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
inc r10
mov dword [rdx], 0x85
test byte [rax + r11 + 0x1bed30], 4
je 0x140103356
movzx eax, byte [r10 + 1]
lea r10, [r10 + 1]
inc ebx
test byte [rax + r11 + 0x1bed30], 4
jne 0x140103134
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
lea rdx, [rcx + 1]
mov r8d, ebx
test byte [rax + r11 + 0x1bed30], 4
je case.0x140102c43.13
nop dword [rax]
movzx ecx, byte [rdx + 1]
lea rdx, [rdx + 1]
inc r8d
test byte [rcx + r11 + 0x1bed30], 4
jne 0x140103170
cmp r8d, ebx
jle case.0x140102c43.13
mov dword [rdi], 0x84
mov eax, r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx r9d, byte [r10 + 1]
xor edx, edx
mov dword [rdi], 0x85
mov rcx, rbx
mov r8d, 0x94
test r9d, r9d
je 0x140103247
nop
movzx eax, r9b
test byte [rax + r11 + 0x1bed30], 0x46
je 0x1401031d3
inc edx
jmp 0x1401031eb
cmp r9d, 0x28
je 0x1401031fd
cmp r9d, 0x3a
jne 0x14010323f
cmp byte [r10 + rcx + 1], r9b
jne 0x14010323f
inc ebx
inc rcx
movzx r9d, byte [rcx + r10 + 1]
inc rcx
inc ebx
test r9d, r9d
jne 0x1401031c0
jmp 0x14010323f
test edx, edx
jle 0x140103241
lea r9, [rcx + r10]
nop word [rax + rax]
movzx ecx, byte [r9 + 1]
lea r9, [r9 + 1]
inc ebx
test ecx, ecx
je 0x140103233
test byte [rcx + r11 + 0x1bed30], 1
jne 0x140103233
cmp ecx, 0x29
jne 0x140103210
inc ebx
jmp 0x14010323f
cmp ecx, 0x29
jne 0x14010323c
inc ebx
jmp 0x14010323f
mov dword [rdi], r8d
test edx, edx
jne 0x140103356
mov dword [rdi], r8d
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp byte [rcx + 1], 0x27
jne case.0x140102c43.34
mov dword [rdx], 0x83
mov edx, 2
add rcx, rdx
movzx eax, byte [rcx]
test byte [rax + r11 + 0x1bed30], 8
je 0x140103295
nop dword [rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + r11 + 0x1bed30], 8
jne 0x140103280
movsxd rax, edx
lea rcx, [rax + r10]
movzx r9d, byte [rcx]
cmp r9b, 0x27
jne 0x1401032ba
mov eax, edx
and eax, 0x80000001
jge 0x1401032b6
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x1401032e1
mov r8d, 0x94
mov dword [rdi], r8d
test r9b, r9b
je 0x1401032e1
movzx eax, byte [rcx]
nop dword [rax + rax]
cmp al, 0x27
je 0x1401032e1
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test al, al
jne 0x1401032d0
movsxd rcx, edx
cmp byte [rcx + r10], 0
je 0x1401032ed
inc edx
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test byte [r9 + r11 + 0x1bed30], 0x46
jne 0x14010331e
mov r8d, 0x94
mov eax, 1
mov dword [rdx], r8d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [rcx + 1]
inc rcx
mov ebx, 1
test byte [rax + r11 + 0x1bed30], 0x46
je 0x14010334a
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc ebx
test byte [rax + r11 + 0x1bed30], 0x46
jne 0x140103335
mov edx, ebx
mov rcx, r10
call fcn.140102ab0
mov dword [rdi], eax
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
sub ebp, eax
lea r9, [rbp - 0x18]
mov eax, dword [r9]
mov ecx, edi
mov edx, eax
shr eax, cl
mov ecx, r13d
or eax, r10d
and edx, r15d
mov r10d, edx
mov dword [r9], eax
lea r9, [r9 + 4]
shl r10d, cl
sub r14, rsi
jne 0x140190006
movsxd r10, r11d
lea edi, [r14 + 2]
mov r9, r10
neg r9
cmp rdi, r10
jl 0x140190051
mov rdx, rdi
shl rdx, 2
lea rax, [rdx + r9*4]
mov ecx, dword [rbp + rax - 0x18]
mov dword [rbp + rdx - 0x18], ecx
jmp 0x140190055
mov dword [rbp + rdi*4 - 0x18], ebx
sub rdi, rsi
jns 0x140190037
mov rdx, qword [rbp - 0x30]
sub r12d, dword [0x14023344c]
mov cl, r12b
shl r8d, cl
neg dword [rbp - 0x3c]
sbb eax, eax
and eax, 0x80000000
or r8d, eax
mov eax, dword [0x140233450]
or r8d, dword [rbp - 0x18]
cmp eax, 0x40
jne 0x140190092
mov eax, dword [rbp - 0x14]
mov dword [rdx + 4], r8d
mov dword [rdx], eax
jmp 0x14019009a
cmp eax, 0x20
jne 0x14019009a
mov dword [rdx], r8d
mov eax, ebx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140166980
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret