Function at 0x180050740
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rsi, qword [rcx + 0x10]
mov r10, qword [rcx]
xor ebx, ebx
mov r9d, r8d
mov rdi, rcx
mov dword [rbp + 0x60], r8d
mov qword [rbp - 0x80], rsi
mov dword [rbp + 0x78], ebx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x60], r10
test rsi, rsi
je 0x1800517a8
lea eax, [rbx + 0x65]
test rdx, rdx
je 0x180050791
movzx eax, byte [rdx]
mov dword [rsp + 0x48], eax
add eax, 0xffffffed
cmp eax, 0x8c
ja case.0x1800507c0.21
lea r8, [0x180000000]
cdqe
movzx eax, byte [r8 + rax + 0x51c74]
mov ecx, dword [r8 + rax*4 + 0x51c10]
add rcx, r8
jmp rcx
mov rcx, qword [rdx + 0x38]
movsx rax, word [rdx + 0x32]
shl rax, 5
add rax, qword [rcx + 0x20]
cmp byte [rcx], bl
jne 0x1800507e8
mov edx, dword [rax + 0x14]
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rcx + 1], bl
je case.0x1800507c0.152
mov r8d, dword [rcx + 8]
mov dword [rsp + 0x20], r9d
mov r9d, dword [rax + 0x10]
mov edx, 0x2f
mov rcx, rsi
call fcn.1800356f0
jmp 0x180051bfe
mov ecx, dword [rdx + 0x2c]
test ecx, ecx
jns 0x180050831
mov eax, dword [rdi + 0x70]
test eax, eax
jle 0x18005082e
movsx edx, word [rdx + 0x30]
add edx, eax
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, dword [rdi + 0x74]
movzx eax, byte [rdx + 0x36]
movsx r8d, word [rdx + 0x30]
mov rdx, qword [rdx + 0x40]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], r9d
mov r9d, ecx
mov rcx, rdi
call fcn.1800504c0
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r8d, r8d
mov rcx, rdi
call fcn.18004ffa0
jmp 0x180051bfe
mov rdx, qword [rdx + 8]
xor r8d, r8d
mov rcx, rsi
call fcn.18004fe50
jmp 0x180051bfe
mov r8, qword [rdx + 8]
mov rcx, rsi
mov edx, r9d
call fcn.1800358d0
jmp 0x180051bfe
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x1800508bd
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], ebx
lea edx, [r8 + 0x19]
call fcn.180035690
jmp 0x180051bfe
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov edx, r9d
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x19
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rdx + 8]
add rdx, 2
mov rcx, rdx
call fcn.180015360
mov rcx, qword [rsi]
mov ebx, eax
lea r8d, [rbx - 1]
call fcn.1800164c0
mov rcx, qword [rsi + 0x30]
movsxd r8, dword [rsi + 0x3c]
mov rdi, rax
lea eax, [rbx - 1]
cdq
sub eax, edx
sar eax, 1
mov r10d, eax
cmp dword [rcx + 0x64], r8d
jg 0x180050951
mov r9d, dword [rbp + 0x70]
xor edx, edx
mov r8d, eax
mov dword [rsp + 0x20], edx
mov edx, 0x1b
mov rcx, rsi
call fcn.180035690
mov r8d, eax
jmp 0x180050982
mov edx, dword [rbp + 0x70]
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r10d
mov word [rax + rcx*8], 0x1b
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov rcx, qword [rsi]
cmp byte [rcx + 0x55], 0
je 0x18005099b
mov r8, rdi
or edx, 0xffffffff
call fcn.180036130
jmp 0x180051bfe
test r8d, r8d
jns 0x1800509a7
mov r8d, dword [rsi + 0x3c]
dec r8d
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x1800509d1
or r9d, 0xffffffff
mov r8, rdi
mov rcx, rsi
call fcn.1800363f0
jmp 0x180051bfe
test rdi, rdi
je 0x180051bfe
mov qword [rdx + 0x10], rdi
mov byte [rdx + 1], 0xff
jmp 0x180051bfe
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
movsx r8d, word [rdx + 0x30]
cmp dword [rax + 0x64], ecx
jg 0x180050a10
mov edx, 0x1c
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov rdx, qword [rbp + 0x68]
jmp 0x180050a3b
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x1c
mov rax, qword [rdx + 8]
cmp byte [rax + 1], bl
je 0x180051bfe
movsx rcx, word [rdx + 0x30]
mov rax, qword [rdi + 0x210]
mov rdx, qword [rax + rcx*8 - 8]
mov rcx, qword [rsi]
cmp byte [rcx + 0x55], bl
je 0x180050a73
mov r8, rdx
mov edx, 0xfffffffe
call fcn.180036130
jmp 0x180051bfe
mov eax, dword [rsi + 0x3c]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
cmp byte [rax + rcx*8 + 1], bl
lea r10, [rax + rcx*8]
je 0x180050aa5
mov r8, rdx
mov r9d, 0xfffffffe
mov rcx, rsi
mov rdx, r10
call fcn.1800363f0
jmp 0x180051bfe
test rdx, rdx
je 0x180051bfe
mov qword [r10 + 0x10], rdx
mov byte [r10 + 1], 0xfe
jmp 0x180051bfe
mov edx, dword [rdx + 0x2c]
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rdx + 0x10]
mov r8d, r9d
mov rcx, rdi
call fcn.180050740
mov edx, dword [rbp + 0x70]
mov r8d, eax
mov dword [rbp + 0x60], eax
cmp eax, edx
je 0x180050b3c
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180050b0f
mov r9d, edx
mov rcx, rsi
mov edx, 0x1f
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov edx, dword [rbp + 0x70]
jmp 0x180050b39
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x1f
mov dword [rbp + 0x60], edx
mov rax, qword [rbp + 0x68]
xor edx, edx
mov rcx, qword [rax + 8]
call fcn.18005a2e0
movsxd rcx, dword [rsi + 0x3c]
movsx r8d, al
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x64], ecx
jg 0x180050b76
mov r9d, r8d
mov r8d, dword [rbp + 0x70]
mov edx, 0x28
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.180035690
jmp 0x180050ba3
mov edx, dword [rbp + 0x70]
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x28
mov edx, dword [rbp + 0x60]
mov r8d, 1
mov rcx, rdi
call fcn.1800502f0
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180051da0
mov rsi, qword [rbp + 0x68]
lea r8, [rsp + 0x50]
mov rdx, qword [rsi + 0x18]
mov rcx, rdi
mov ebx, eax
call fcn.180051da0
mov edx, dword [rbp + 0x70]
mov r9d, dword [rsp + 0x48]
mov r8, qword [rsi + 0x18]
mov dword [rsp + 0x38], 0x20
mov dword [rsp + 0x30], edx
mov rdx, qword [rsi + 0x10]
mov dword [rsp + 0x28], eax
mov rcx, rdi
mov dword [rsp + 0x20], ebx
call fcn.18004c1d0
jmp 0x180051645
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180051da0
lea r8, [rsp + 0x50]
mov rcx, rdi
mov ebx, eax
mov rax, qword [rbp + 0x68]
mov rdx, qword [rax + 0x18]
call fcn.180051da0
mov edx, dword [rbp + 0x70]
mov dword [rsp + 0x38], 0xa0
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x68]
mov r8, qword [rax + 0x18]
mov rdx, qword [rax + 0x10]
xor esi, esi
cmp dword [rsp + 0x48], 0x49
mov r9d, esi
mov rcx, rdi
sete r9b
mov dword [rsp + 0x20], ebx
add r9d, 0x4e
call fcn.18004c1d0
jmp 0x180051647
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180051da0
lea r8, [rsp + 0x50]
mov rcx, rdi
mov ebx, eax
mov rax, qword [rbp + 0x68]
mov rdx, qword [rax + 0x18]
call fcn.180051da0
mov edx, dword [rbp + 0x70]
mov r9d, ebx
mov dword [rsp + 0x20], edx
mov edx, dword [rsp + 0x48]
mov r8d, eax
mov rcx, rsi
call fcn.1800356f0
jmp 0x180051645
mov rdx, qword [rdx + 0x10]
movzx eax, byte [rdx]
cmp al, 0x84
jne 0x180050cec
mov r8d, 1
mov rcx, rdi
call fcn.18004ffa0
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x180051645
cmp al, 0x85
jne 0x180050d0d
mov rdx, qword [rdx + 8]
mov r8d, 1
mov rcx, rsi
call fcn.18004fe50
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x180051645
lea r8, [rbp + 0x78]
lea rdx, [rbp - 0x70]
mov rcx, rdi
mov byte [rbp - 0x70], 0x84
mov qword [rbp - 0x6c], 0x4400
call fcn.180051da0
mov ebx, eax
mov rax, qword [rbp + 0x68]
lea r8, [rsp + 0x50]
mov rdx, qword [rax + 0x10]
mov rcx, rdi
call fcn.180051da0
mov edx, dword [rbp + 0x70]
mov r9d, ebx
mov dword [rsp + 0x20], edx
mov edx, 0x5a
mov r8d, eax
mov rcx, rsi
call fcn.1800356f0
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x180051645
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180051da0
mov ecx, dword [rbp + 0x70]
mov edx, dword [rsp + 0x48]
mov dword [rbp + 0x60], ecx
mov r9d, ecx
mov r8d, eax
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.1800356f0
jmp 0x180051645
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180050dbe
mov edx, reloc.WS2_32.dll_shutdown
mov rcx, rsi
mov dword [rsp + 0x20], ebx
lea r8d, [rdx - 0x15]
call fcn.180035690
mov rdx, qword [rbp + 0x68]
jmp 0x180050dec
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], reloc.WS2_32.dll_shutdown
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180051da0
mov edx, dword [rsp + 0x48]
mov rcx, rsi
mov r8d, eax
call fcn.1800357f0
mov rcx, qword [rsi + 0x30]
movsxd rdx, dword [rsi + 0x3c]
mov dword [rsp + 0x58], eax
cmp dword [rcx + 0x64], edx
jg 0x180050e44
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x16]
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov edx, dword [rsp + 0x58]
mov rcx, rsi
call fcn.1800360f0
jmp 0x180051645
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov edx, dword [rbp + 0x70]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rsp + 0x58]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], reloc.WS2_32.dll_shutdown
mov rcx, rsi
call fcn.1800360f0
jmp 0x180051645
mov r8, qword [rdx + 0x38]
test r8, r8
jne 0x180050ea2
mov r8, qword [rdx + 8]
lea rdx, str.misuse_of_aggregate:__s__
mov rcx, rdi
call fcn.180015500
jmp 0x180051bfe
movsx rax, word [rdx + 0x32]
lea rcx, [rax + rax*2]
mov rax, qword [r8 + 0x30]
mov edx, dword [rax + rcx*8 + 0x10]
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
test dword [rdx + 4], 0x4000
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x68], rbx
je 0x180050f99
mov qword [rsp + 0x70], rbx
mov eax, ebx
mov dword [rbp + 0x78], ebx
mov rcx, qword [rdx + 8]
movzx r9d, byte [r10 + 0x52]
mov r8d, eax
mov qword [rsp + 0x78], rcx
mov rdx, rcx
mov rcx, r10
mov byte [rsp + 0x20], bl
call fcn.1800618f0
mov qword [rsp + 0x58], rax
test rax, rax
je 0x180051381
cmp qword [rax + 0x20], rbx
jne 0x180051381
movzx ecx, word [rax + 2]
mov eax, 0x200
test ax, cx
je 0x18005103c
mov rcx, rsi
call fcn.180035d60
mov rdx, qword [rsp + 0x70]
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rdx + 8]
mov rcx, rdi
mov dword [rsp + 0x40], eax
mov rdx, qword [rdx]
call fcn.180051f00
mov r8d, dword [rbp + 0x78]
cmp r8d, 1
jle 0x18005102b
lea ecx, [r8 - 1]
mov qword [rbp + 0x78], 0x28
mov qword [rsp + 0x60], rcx
nop
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180050fb5
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rbp + 0x70]
mov edx, 0x4d
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.180035690
jmp 0x180050fe5
mov rcx, qword [rdx + 0x20]
mov qword [rsp + 0x70], rcx
test rcx, rcx
je 0x180050edc
mov eax, dword [rcx]
mov dword [rbp + 0x78], eax
jmp 0x180050ee1
mov edx, dword [rbp + 0x70]
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x40]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x4d
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rbp + 0x70]
mov r8d, 1
mov rcx, rdi
call fcn.1800502f0
inc dword [rdi + 0x78]
mov rax, qword [rsp + 0x70]
mov rdx, qword [rax + 8]
mov rax, qword [rbp + 0x78]
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rdx + rax]
call fcn.180051f00
mov rcx, rdi
call fcn.180050350
add qword [rbp + 0x78], 0x28
dec qword [rsp + 0x60]
jne 0x180050f70
mov edx, dword [rsp + 0x40]
mov rcx, rsi
call fcn.180035dd0
jmp 0x180051bfe
mov eax, 0x400
test ax, cx
je 0x18005106c
mov rax, qword [rsp + 0x70]
mov r8d, dword [rbp + 0x70]
mov rcx, rdi
mov rdx, qword [rax + 8]
mov rdx, qword [rdx]
call fcn.180050740
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, dword [rbp + 0x78]
mov eax, 1
mov edx, ebx
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x50], eax
test ecx, ecx
jle 0x180051103
mov rsi, qword [rsp + 0x70]
mov ebx, edx
nop dword [rax]
cmp edx, 0x20
jge 0x1800510b5
mov rcx, qword [rsi + 8]
mov rcx, qword [rcx + rbx]
call fcn.18004e0b0
mov ecx, dword [rbp + 0x78]
mov edx, dword [rsp + 0x48]
test eax, eax
mov eax, dword [rsp + 0x50]
je 0x1800510b5
or dword [rsp + 0x40], eax
mov r8, qword [rsp + 0x58]
test byte [r8 + 2], 0x20
je 0x1800510e9
cmp qword [rsp + 0x68], 0
jne 0x1800510e9
mov rdx, qword [rsi + 8]
mov rcx, rdi
mov rdx, qword [rdx + rbx]
call fcn.18004be20
mov ecx, dword [rbp + 0x78]
mov edx, dword [rsp + 0x48]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x50]
inc edx
rol eax, 1
add rbx, 0x28
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x48], edx
cmp edx, ecx
jl 0x180051090
mov rsi, qword [rbp - 0x80]
xor ebx, ebx
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x180051195
cmp dword [rsp + 0x40], 0
jne 0x18005113a
mov r9d, dword [rdi + 0x48]
mov r8d, dword [rdi + 0x4c]
mov dword [rsp + 0x48], r8d
cmp ecx, r9d
jg 0x18005113a
lea eax, [r8 + rcx]
sub r9d, ecx
mov dword [rdi + 0x4c], eax
mov dword [rdi + 0x48], r9d
jmp 0x18005114b
mov eax, dword [rdi + 0x58]
lea r8d, [rax + 1]
add eax, ecx
mov dword [rsp + 0x48], r8d
mov dword [rdi + 0x58], eax
mov rcx, qword [rsp + 0x58]
test byte [rcx + 2], 0xc0
je 0x180051173
mov rax, qword [rdx + 8]
mov r9, qword [rax]
movzx eax, byte [r9]
cmp al, 0x98
je 0x180051169
cmp al, 0x9a
jne 0x180051173
movzx eax, byte [rcx + 2]
and al, 0xc0
mov byte [r9 + 0x36], al
inc dword [rdi + 0x78]
xor r9d, r9d
mov rcx, rdi
mov byte [rsp + 0x20], 3
call fcn.1800520a0
mov rcx, rdi
call fcn.180050350
mov rdx, qword [rsp + 0x70]
jmp 0x180051199
mov dword [rsp + 0x48], ebx
mov ecx, dword [rbp + 0x78]
cmp ecx, 2
jl 0x1800511cc
mov rax, qword [rbp + 0x68]
test byte [rax + 4], 0x80
je 0x1800511cc
mov r9, qword [rdx + 8]
mov rdx, qword [rsp + 0x58]
mov r8d, ecx
mov r9, qword [r9 + 0x28]
mov rcx, qword [rsp + 0x60]
call fcn.18008d310
mov qword [rsp + 0x58], rax
jmp 0x1800511f5
test ecx, ecx
jle 0x1800511f0
mov r9, qword [rdx + 8]
mov rdx, qword [rsp + 0x58]
mov r8d, ecx
mov r9, qword [r9]
mov rcx, qword [rsp + 0x60]
call fcn.18008d310
mov qword [rsp + 0x58], rax
jmp 0x1800511f5
mov rax, qword [rsp + 0x58]
test byte [rax + 2], 0x20
je 0x1800512c7
cmp qword [rsp + 0x68], 0
jne 0x180051215
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x68], rax
mov rax, qword [rsi + 0x30]
movsxd rdx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], edx
jg 0x18005123c
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
lea edx, [r9 + 0x22]
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov edx, eax
jmp 0x180051267
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 4], 0
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x22
mov rcx, qword [rsi]
cmp byte [rcx + 0x55], 0
je 0x180051281
mov r8, qword [rsp + 0x68]
mov edx, 0xfffffffc
call fcn.180036130
jmp 0x1800512c7
test edx, edx
jns 0x18005128a
mov edx, dword [rsi + 0x3c]
dec edx
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x1800512b5
mov r8, qword [rsp + 0x68]
mov r9d, 0xfffffffc
mov rcx, rsi
call fcn.1800363f0
jmp 0x1800512c7
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x1800512c7
mov qword [rdx + 0x10], rax
mov byte [rdx + 1], 0xfc
mov eax, dword [rbp + 0x70]
mov ebx, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x48]
mov r8d, ebx
mov edx, 0x23
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1800356f0
mov rcx, qword [rsi]
cmp byte [rcx + 0x55], 0
je 0x180051301
mov r8, qword [rsp + 0x58]
mov edx, 0xfffffffb
call fcn.180036130
jmp 0x180051341
test eax, eax
jns 0x18005130a
mov eax, dword [rsi + 0x3c]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x180051334
mov r8, qword [rsp + 0x58]
mov r9d, 0xfffffffb
mov rcx, rsi
call fcn.1800363f0
jmp 0x180051341
mov rax, qword [rsp + 0x58]
mov byte [rdx + 1], 0xfb
mov qword [rdx + 0x10], rax
mov rax, qword [rsi]
mov r8d, dword [rbp + 0x78]
cmp byte [rax + 0x55], 0
jne 0x18005135f
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 - 0x15], r8b
test r8d, r8d
je 0x180051bfe
test ebx, ebx
jne 0x180051bfe
mov edx, dword [rsp + 0x48]
mov rcx, rdi
call fcn.180053550
jmp 0x180051bfe
mov r8, qword [rsp + 0x78]
lea rdx, str.unknown_function:__s__
mov rcx, rdi
call fcn.180015500
jmp 0x180051bfe
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call fcn.18004ec10
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, rsi
call fcn.180035d60
mov rcx, rsi
mov dword [rbp + 0x78], eax
call fcn.180035d60
mov rcx, qword [rsi + 0x30]
movsxd rdx, dword [rsi + 0x3c]
mov dword [rsp + 0x40], eax
cmp dword [rcx + 0x64], edx
jg 0x1800513f3
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], ebx
call fcn.180035690
jmp 0x18005141f
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov edx, dword [rbp + 0x70]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x19
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rbp + 0x78]
mov rdx, qword [rbp + 0x68]
mov rcx, rdi
call fcn.18004f510
mov rax, qword [rsi + 0x30]
movsxd r11, dword [rsi + 0x3c]
cmp dword [rax + 0x64], r11d
jg 0x180051461
mov r9d, dword [rbp + 0x70]
mov edx, reloc.WS2_32.dll_shutdown
mov rcx, rsi
lea r8d, [rdx - 0x15]
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov r10d, dword [rbp + 0x70]
jmp 0x180051494
mov r10d, dword [rbp + 0x70]
lea rcx, [r11 + r11*2]
lea eax, [r11 + 1]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], r10d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], reloc.WS2_32.dll_shutdown
mov edx, dword [rbp + 0x78]
mov rcx, rsi
call fcn.180035dd0
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x1800514d3
xor r9d, r9d
mov r8d, r10d
mov rcx, rsi
lea edx, [r9 + 0x25]
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov edx, dword [rsp + 0x40]
mov rcx, rsi
call fcn.180035dd0
jmp 0x180051bfe
mov edx, dword [rsp + 0x40]
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], r10d
mov qword [rax + rcx*8 + 8], rbx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x25
mov rcx, rsi
call fcn.180035dd0
jmp 0x180051bfe
mov rax, qword [rdx + 0x20]
mov rbx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rax, qword [rax + 8]
mov rdx, rbx
mov rcx, rdi
mov qword [rbp - 0x80], rax
mov rax, qword [rax]
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x60], rax
call fcn.180051da0
mov rdx, qword [rsp + 0x60]
lea r8, [rsp + 0x50]
mov rcx, rdi
mov dword [rsp + 0x58], eax
call fcn.180051da0
movzx ecx, byte [rdi + 0x1f]
mov r11d, eax
test cl, cl
jne 0x180051560
inc dword [rdi + 0x58]
mov ecx, dword [rdi + 0x58]
jmp 0x18005156c
dec cl
movzx eax, cl
mov byte [rdi + 0x1f], al
mov ecx, dword [rdi + rax*4 + 0x28]
movzx eax, byte [rdi + 0x1f]
mov dword [rsp + 0x48], ecx
test al, al
jne 0x180051580
inc dword [rdi + 0x58]
mov eax, dword [rdi + 0x58]
jmp 0x18005158c
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov eax, dword [rdi + rax*4 + 0x28]
mov r8, qword [rsp + 0x60]
mov dword [rsp + 0x38], 0x20
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x28], r11d
mov r9d, 0x53
mov rdx, rbx
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.18004c1d0
mov rbx, qword [rbp - 0x80]
mov edx, dword [rsp + 0x50]
mov rbx, qword [rbx + 0x28]
mov rcx, rdi
call fcn.180053500
lea r8, [rsp + 0x50]
mov rdx, rbx
call fcn.180051da0
mov ecx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x38], 0x20
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x58]
mov r9d, 0x51
mov r8, rbx
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.18004c1d0
mov eax, dword [rbp + 0x70]
mov ebx, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x48]
mov r9d, ebx
mov edx, 0x48
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1800356f0
mov edx, dword [rsp + 0x48]
mov rcx, rdi
call fcn.180053500
mov edx, ebx
call fcn.180053500
xor esi, esi
cmp dword [rbp + 0x78], 0
je 0x180051685
movzx r8d, byte [rdi + 0x1f]
cmp r8b, 8
jae 0x180051685
mov edx, esi
lea rcx, [rdi + 0x90]
mov eax, dword [rbp + 0x78]
cmp dword [rcx + 0xc], eax
je 0x180051681
inc edx
add rcx, 0x14
cmp edx, 0xa
jl 0x180051661
movzx ecx, r8b
mov dword [rdi + rcx*4 + 0x28], eax
inc byte [rdi + 0x1f]
jmp 0x180051685
mov byte [rcx + 6], 1
cmp dword [rsp + 0x50], 0
je 0x180051bfe
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x180051bfe
lea rcx, [rdi + 0x90]
mov eax, dword [rsp + 0x50]
cmp dword [rcx + 0xc], eax
je 0x1800516c7
inc esi
add rcx, 0x14
cmp esi, 0xa
jl 0x1800516a4
movzx ecx, dl
mov dword [rdi + rcx*4 + 0x28], eax
inc byte [rdi + 0x1f]
jmp 0x180051bfe
mov byte [rcx + 6], 1
jmp 0x180051bfe
mov rdx, qword [rdx + 0x10]
mov r8d, r9d
mov rcx, rdi
call fcn.180050740
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
movsx eax, word [rdx + 0x30]
mov rdi, qword [rdx + 0x40]
movsx ecx, word [rdi + 0x3e]
inc ecx
imul ecx, dword [rdx + 0x2c]
lea r8d, [rcx + rax + 1]
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x18005172c
mov edx, 0x86
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov rdx, qword [rbp + 0x68]
mov r9d, dword [rbp + 0x70]
jmp 0x180051757
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x86
movzx eax, word [rdx + 0x30]
test ax, ax
js 0x180051bfe
movsx rcx, ax
mov rax, qword [rdi + 8]
shl rcx, 5
cmp byte [rcx + rax + 0x19], 0x45
jne 0x180051bfe
mov r8d, r9d
mov edx, 0x27
mov rcx, rsi
call fcn.1800357f0
jmp 0x180051bfe
cmp qword [rdi + 0x1d0], rbx
jne 0x1800517b6
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rdi
call fcn.180015500
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rdx + 1], 2
jne 0x1800517d1
mov rax, qword [rdi + 0x1c8]
mov rcx, rdi
test rax, rax
cmovne rcx, rax
mov byte [rcx + 0x21], 1
movzx eax, byte [rdx + 1]
cmp al, 4
jne 0x180051877
mov rdi, qword [rdx + 8]
mov rax, qword [rsi + 0x30]
movsxd rdx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], edx
jg 0x18005180b
mov r9d, 4
xor r8d, r8d
mov rcx, rsi
lea edx, [r9 + 0x11]
mov dword [rsp + 0x20], ebx
call fcn.180035690
mov edx, eax
jmp 0x180051835
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], ebx
mov qword [rax + rcx*8 + 8], 4
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], reloc.WS2_32.dll_setsockopt
mov rcx, qword [rsi]
cmp byte [rcx + 0x55], bl
je 0x18005184c
mov r8, rdi
xor edx, edx
call fcn.180036130
jmp 0x180051bfe
test edx, edx
jns 0x180051855
mov edx, dword [rsi + 0x3c]
dec edx
movsxd rax, edx
xor r9d, r9d
mov r8, rdi
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
lea rdx, [rax + rcx*8]
mov rcx, rsi
call fcn.1800363f0
jmp 0x180051bfe
mov r9, qword [rdx + 8]
movsx r8d, al
mov rcx, rdi
mov edx, 0x713
mov byte [rsp + 0x28], bl
mov byte [rsp + 0x20], bl
call fcn.180060430
jmp 0x180051bfe
mov rax, qword [rdx + 0x20]
mov rcx, rsi
mov qword [rsp + 0x70], rbx
mov rdx, qword [rax + 8]
mov qword [rsp + 0x78], rax
mov eax, dword [rax]
mov dword [rsp + 0x58], eax
mov qword [rsp + 0x68], rdx
call fcn.180035d60
mov dword [rsp + 0x40], eax
mov rax, qword [rbp + 0x68]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x50], rcx
test rcx, rcx
je 0x18005193d
movups xmm0, xmmword [rcx]
mov rdx, rcx
lea r8, [rbp + 0x78]
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rcx + 0x10]
movaps xmmword [rbp - 0x60], xmm1
movups xmm0, xmmword [rcx + 0x20]
movaps xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rcx + 0x30]
movaps xmmword [rbp - 0x40], xmm1
movsd xmm0, qword [rcx + 0x40]
mov rcx, rdi
movsd qword [rbp - 0x30], xmm0
call fcn.180051da0
movzx ecx, byte [rbp - 0x70]
and dword [rbp - 0x6c], 0xffffefff
mov dword [rbp - 0x44], eax
lea r10, [rbp - 0x20]
lea rax, [rbp - 0x70]
mov byte [rbp - 0x3a], cl
mov rcx, qword [rsp + 0x50]
mov byte [rbp - 0x70], 0x9d
mov qword [rbp - 0x10], rax
mov byte [rbp - 0x20], 0x4f
mov qword [rsp + 0x70], r10
jmp 0x180051940
mov r10, rbx
mov eax, dword [rsp + 0x58]
mov qword [rsp + 0x60], 0xa
dec eax
test eax, eax
jle 0x180051b02
lea edx, [rax - 1]
mov rax, qword [rsp + 0x68]
shr edx, 1
inc edx
mov qword [rsp + 0x48], rdx
inc dword [rdi + 0x78]
test rcx, rcx
je 0x180051979
mov rax, qword [rax]
mov qword [rbp - 8], rax
jmp 0x180051981
mov r10, qword [rax]
mov qword [rsp + 0x70], r10
mov rcx, qword [rsi + 0x30]
mov qword [rbp - 0x80], rcx
mov edx, dword [rcx + 0x80]
mov dword [rbp + 0x78], edx
lea eax, [rdx + 1]
mov dword [rcx + 0x80], eax
lea eax, [rdx - 1]
test edx, eax
jne 0x1800519cf
lea eax, [rdx + rdx + 1]
mov rdx, qword [rcx + 0x88]
mov rcx, qword [rcx]
movsxd r8, eax
shl r8, 2
call fcn.180012710
mov rcx, qword [rbp - 0x80]
mov edx, dword [rbp + 0x78]
mov r10, qword [rsp + 0x70]
mov qword [rcx + 0x88], rax
mov r8, qword [rcx + 0x88]
test r8, r8
je 0x1800519e6
movsxd rax, edx
mov dword [r8 + rax*4], 0xffffffff
or eax, 0xffffffff
mov r9d, reloc.WS2_32.dll_recv
mov rcx, rdi
sub eax, edx
mov rdx, r10
mov r8d, eax
mov dword [rbp + 0x78], eax
call fcn.180052890
mov rdx, qword [rsp + 0x68]
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rdx + 0x28]
mov rcx, rdi
call fcn.180051f00
mov rax, qword [rsi + 0x30]
movsxd r11, dword [rsi + 0x3c]
cmp dword [rax + 0x64], r11d
jg 0x180051a3f
mov r9d, dword [rsp + 0x40]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0xd]
mov dword [rsp + 0x20], ebx
call fcn.180035690
jmp 0x180051a6d
mov edx, dword [rsp + 0x40]
lea rcx, [r11 + r11*2]
lea eax, [r11 + 1]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], ntohs
dec dword [rdi + 0x78]
lea rcx, [rdi + 0x9c]
mov r8d, 0xa
nop dword [rax]
mov edx, dword [rcx]
test edx, edx
je 0x180051aaa
mov eax, dword [rdi + 0x78]
cmp dword [rcx - 4], eax
jle 0x180051aaa
cmp byte [rcx - 6], bl
je 0x180051aa8
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x180051aa5
movzx eax, al
mov dword [rdi + rax*4 + 0x28], edx
inc byte [rdi + 0x1f]
mov byte [rcx - 6], bl
mov dword [rcx], ebx
add rcx, 0x14
dec r8
jne 0x180051a80
mov rdx, qword [rsi + 0x30]
mov rcx, qword [rdx + 0x88]
test rcx, rcx
je 0x180051ad7
movsxd rax, dword [rbp + 0x78]
lea rax, [rax*4 + 4]
sub rcx, rax
mov eax, dword [rsi + 0x3c]
mov dword [rcx], eax
mov eax, dword [rsi + 0x3c]
mov rcx, qword [rsp + 0x50]
mov r10, qword [rsp + 0x70]
dec eax
mov dword [rdx + 0x6c], eax
mov rax, qword [rsp + 0x68]
add rax, 0x50
dec qword [rsp + 0x48]
mov qword [rsp + 0x68], rax
jne 0x180051968
movsxd rax, dword [rsp + 0x58]
test al, 1
je 0x180051b7f
inc dword [rdi + 0x78]
mov rdx, qword [rsp + 0x78]
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rdx + 8]
lea rcx, [rax + rax*4]
mov rdx, qword [rdx + rcx*8 - 0x28]
mov rcx, rdi
call fcn.180051f00
dec dword [rdi + 0x78]
lea rcx, [rdi + 0x9c]
mov eax, 0xa
nop dword [rax + rax]
mov edx, dword [rcx]
test edx, edx
je 0x180051b6f
mov eax, dword [rdi + 0x78]
cmp dword [rcx - 4], eax
jle 0x180051b6a
cmp byte [rcx - 6], bl
je 0x180051b68
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x180051b65
movzx eax, al
mov dword [rdi + rax*4 + 0x28], edx
inc byte [rdi + 0x1f]
mov byte [rcx - 6], bl
mov dword [rcx], ebx
mov rax, qword [rsp + 0x60]
add rcx, 0x14
dec rax
mov qword [rsp + 0x60], rax
jne 0x180051b40
jmp 0x180051bd1
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180051ba5
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], ebx
call fcn.180035690
jmp 0x180051bd1
mov edx, dword [rbp + 0x70]
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 + 3], bl
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
mov word [rax + rcx*8], 0x19
mov rdx, qword [rsi + 0x30]
mov rcx, qword [rdx + 0x88]
test rcx, rcx
je 0x180051bf6
movsxd rax, dword [rsp + 0x40]
lea rax, [rax*4 + 4]
sub rcx, rax
mov eax, dword [rsi + 0x3c]
mov dword [rcx], eax
mov eax, dword [rsi + 0x3c]
dec eax
mov dword [rdx + 0x6c], eax
mov edx, dword [rbp + 0x60]
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret