Function at 0x140098b20
Capabilities:
Parse pe header

Disassembly:
push rdi
sub rsp, 0x20
mov r10, rcx
lea rdi, [0x140000000]
movzx ecx, byte [rcx]
mov r9, rdx
movzx eax, byte [rcx + rdi + 0xcb530]
cmp eax, 0x1a
ja case.default.0x140098b52
mov r8d, dword [rdi + rax*4 + 0x99240]
add r8, rdi
jmp r8
movzx eax, byte [r10 + 1]
inc r10
mov edx, 1
test byte [rax + rdi + 0xc8850], dl
je 0x140098b85
nop dword [rax + rax]
movzx eax, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test byte [rax + rdi + 0xc8850], 1
jne 0x140098b70
mov dword [r9], 0xa3
mov eax, edx
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x2d
jne 0x140098bd2
mov edx, 2
add r10, rdx
movzx eax, byte [r10]
test eax, eax
je 0x140098b85
nop dword [rax + rax]
cmp eax, 0xa
je 0x140098b85
movzx eax, byte [r10 + 1]
inc r10
inc edx
test eax, eax
jne 0x140098bb0
mov dword [r9], 0xa3
mov eax, edx
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x59
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], socket
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], reloc.WS2_32.dll_socket
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov edx, 1
mov dword [r9], edx
mov eax, edx
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x58
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5a
mov eax, 1
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x2a
jne 0x140098c7d
movzx eax, byte [r10 + 2]
test al, al
je 0x140098c7d
mov edx, 3
movzx eax, al
add r10, rdx
cmp eax, 0x2a
jne 0x140098c5d
cmp byte [r10], 0x2f
je 0x140098c6c
movzx eax, byte [r10]
test eax, eax
je 0x140098c6e
inc edx
inc r10
jmp 0x140098c52
inc edx
mov dword [r9], 0xa3
mov eax, edx
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5b
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5c
mov eax, 1
add rsp, 0x20
pop rdi
ret
xor r8d, r8d
mov dword [rdx], 0x4e
cmp byte [r10 + 1], 0x3d
sete r8b
lea eax, [r8 + 1]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
cmp eax, 0x3d
jne 0x140098cd6
mov dword [rdx], 0x50
mov eax, 2
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
je 0x140098d4f
cmp eax, 0x3c
jne 0x140098cf1
mov dword [rdx], 0x56
mov eax, 2
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x51
mov eax, 1
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
cmp eax, 0x3d
jne 0x140098d1d
mov dword [rdx], 0x52
mov eax, 2
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x140098d33
mov dword [rdx], 0x57
mov eax, 2
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x4f
mov eax, 1
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x3d
jne case.default.0x140098b52
mov dword [rdx], 0x4d
mov eax, 2
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x7c
je 0x140098d78
mov dword [rdx], 0x55
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5d
mov eax, 2
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x1a
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x54
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5f
mov eax, 1
add rsp, 0x20
pop rdi
ret
movzx r8d, byte [r10 + 1]
mov r11d, ecx
lea rcx, [r10 + 1]
mov edx, 1
test r8d, r8d
je 0x140098dfe
add r10, 2
cmp r8d, r11d
jne 0x140098dec
movzx eax, byte [r10]
cmp eax, r11d
jne 0x140098dfe
inc edx
inc r10
inc rcx
movzx r8d, byte [rcx + 1]
inc rcx
inc edx
inc r10
test r8d, r8d
jne 0x140098dd6
cmp r8d, 0x27
jne 0x140098e14
mov dword [r9], 0x61
lea eax, [rdx + 1]
add rsp, 0x20
pop rdi
ret
test r8d, r8d
je 0x140098e2a
mov ecx, 0x1b
lea eax, [rdx + 1]
mov dword [r9], ecx
add rsp, 0x20
pop rdi
ret
mov r11d, 0xa4
mov eax, edx
mov dword [r9], r11d
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
test byte [rax + rdi + 0xc8850], 4
jne case.0x140098b52.3
mov dword [rdx], 0x7a
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x86
cmp cl, 0x30
jne 0x140098ebd
movzx eax, byte [r10 + 1]
sub al, 0x58
test al, 0xdf
jne 0x140098ebd
movzx eax, byte [r10 + 2]
test byte [rax + rdi + 0xc8850], 8
je 0x140098ebd
mov edx, 3
add r10, rdx
movzx eax, byte [r10]
test byte [rax + rdi + 0xc8850], 8
je 0x140098eb5
nop word [rax + rax]
movzx ecx, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test byte [rcx + rdi + 0xc8850], 8
jne 0x140098ea0
mov eax, edx
add rsp, 0x20
pop rdi
ret
xor r8d, r8d
test byte [rcx + rdi + 0xc8850], 4
je 0x140098ee5
mov rcx, r10
nop dword [rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc r8d
test byte [rax + rdi + 0xc8850], 4
jne 0x140098ed0
movsxd rax, r8d
cmp byte [rax + r10], 0x2e
jne 0x140098f20
inc r8d
movsxd rcx, r8d
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rdi + 0xc8850], 4
je 0x140098f1a
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc r8d
test byte [rax + rdi + 0xc8850], 4
jne 0x140098f05
mov dword [rdx], 0x84
movsxd rax, r8d
movzx ecx, byte [rax + r10]
sub cl, 0x45
test cl, 0xdf
jne 0x140098f9b
lea eax, [r8 + 1]
movsxd rcx, eax
movzx eax, byte [rcx + r10]
test byte [rax + rdi + 0xc8850], 4
jne 0x140098f62
sub al, 0x2b
test al, 0xfd
jne 0x140098f9b
lea eax, [r8 + 2]
movsxd rcx, eax
movzx eax, byte [rcx + r10]
test byte [rax + rdi + 0xc8850], 4
je 0x140098f9b
add r8d, 2
movsxd rcx, r8d
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rdi + 0xc8850], 4
je 0x140098f95
nop dword [rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc r8d
test byte [rax + rdi + 0xc8850], 4
jne 0x140098f80
mov dword [rdx], 0x84
movsxd rdx, r8d
add rdx, r10
movzx eax, byte [rdx]
test byte [rax + rdi + 0xc8850], 0x46
je 0x140098fd8
mov r11d, 0xa4
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rdx + 1]
lea rdx, [rdx + 1]
inc r8d
mov dword [r9], r11d
test byte [rcx + rdi + 0xc8850], 0x46
jne 0x140098fc0
mov eax, r8d
add rsp, 0x20
pop rdi
ret
mov edx, 1
mov eax, ecx
cmp ecx, 0x5d
je 0x140099002
inc r10
movzx eax, byte [r10]
test eax, eax
je 0x140099002
inc edx
inc r10
cmp eax, 0x5d
jne 0x140098ff0
cmp eax, 0x5d
mov ecx, 0x1b
mov r11d, 0xa4
mov eax, edx
cmove r11d, ecx
mov dword [r9], r11d
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
inc r10
mov dword [rdx], 0x87
mov edx, 1
test byte [rax + rdi + 0xc8850], 4
je 0x140098eb5
movzx eax, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test byte [rax + rdi + 0xc8850], 4
jne 0x140099040
mov eax, edx
add rsp, 0x20
pop rdi
ret
xor r8d, r8d
mov qword [rsp + 0x30], rbx
movzx ebx, byte [r10 + 1]
mov r11d, 0xa4
mov dword [rdx], 0x87
lea edx, [r8 + 1]
test ebx, ebx
je 0x1400990f4
mov ecx, edx
movzx eax, bl
test byte [rax + rdi + 0xc8850], 0x46
je 0x140099092
inc r8d
jmp 0x1400990a8
cmp ebx, 0x28
je 0x1400990b9
cmp ebx, 0x3a
jne 0x1400990ef
cmp byte [r10 + rcx + 1], bl
jne 0x1400990ef
inc edx
inc rcx
movzx ebx, byte [rcx + r10 + 1]
inc rcx
inc edx
test ebx, ebx
jne 0x140099080
jmp 0x1400990ef
test r8d, r8d
jle 0x1400990f2
add r10, rcx
movzx ecx, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test ecx, ecx
je 0x1400990e3
test byte [rcx + rdi + 0xc8850], 1
jne 0x1400990e3
cmp ecx, 0x29
jne 0x1400990c1
inc edx
jmp 0x1400990ef
cmp ecx, 0x29
jne 0x1400990ec
inc edx
jmp 0x1400990ef
mov dword [r9], r11d
test r8d, r8d
jne 0x1400990f7
mov dword [r9], r11d
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
mov edx, 1
cmp byte [rax + rdi + 0xcb530], dl
ja 0x140099134
nop dword [rax + rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
cmp byte [rax + rdi + 0xcb530], 1
jbe 0x140099120
movsxd rax, edx
movzx ecx, byte [rax + r10]
test byte [rcx + rdi + 0xc8850], 0x46
je 0x14009914d
inc edx
jmp 0x1400991f2
mov ecx, 0x1b
mov r8, r9
mov dword [r9], ecx
mov rcx, r10
call fcn.1400989d0
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x27
jne case.0x140098b52.2
movzx eax, byte [r10 + 2]
lea rcx, [r10 + 2]
mov dword [rdx], 0x85
mov edx, 2
test byte [rax + rdi + 0xc8850], 8
je 0x1400991a4
nop
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + rdi + 0xc8850], 8
jne 0x140099190
movsxd rax, edx
lea rcx, [rax + r10]
movzx eax, byte [rax + r10]
cmp al, 0x27
jne 0x1400991b9
test dl, 1
je 0x1400991d7
mov r11d, 0xa4
mov dword [r9], r11d
test al, al
je 0x1400991d7
cmp al, 0x27
je 0x1400991d7
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test al, al
jne 0x1400991c6
movsxd rax, edx
lea ecx, [rdx + 1]
cmp byte [rax + r10], 0
cmove ecx, edx
mov eax, ecx
add rsp, 0x20
pop rdi
ret
mov edx, 1
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rdi + 0xc8850], 0x46
je 0x140099219
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + rdi + 0xc8850], 0x46
jne 0x140099205
mov ecx, 0x1b
mov eax, edx
mov dword [r9], ecx
add rsp, 0x20
pop rdi
ret
mov r11d, 0xa4
mov eax, 1
mov dword [rdx], r11d
add rsp, 0x20
pop rdi
ret