Function at 0x180055700
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 0x180056768
lea eax, [rbx + 0x65]
test rdx, rdx
je 0x180055751
movzx eax, byte [rdx]
mov dword [rsp + 0x48], eax
add eax, 0xffffffed
cmp eax, 0x8c
ja case.0x180055780.21
lea r8, [0x180000000]
cdqe
movzx eax, byte [r8 + rax + 0x56c34]
mov ecx, dword [r8 + rax*4 + 0x56bd0]
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 0x1800557a8
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.0x180055780.152
mov r8d, dword [rcx + 8]
mov dword [rsp + 0x20], r9d
mov r9d, dword [rax + 0x10]
mov edx, gethostbyaddr
mov rcx, rsi
call fcn.18003a6c0
jmp 0x180056bbe
mov ecx, dword [rdx + 0x2c]
test ecx, ecx
jns 0x1800557f1
mov eax, dword [rdi + 0x70]
test eax, eax
jle 0x1800557ee
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.180055480
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r8d, r8d
mov rcx, rdi
call fcn.180054f60
jmp 0x180056bbe
mov rdx, qword [rdx + 8]
xor r8d, r8d
mov rcx, rsi
call fcn.180054e10
jmp 0x180056bbe
mov r8, qword [rdx + 8]
mov rcx, rsi
mov edx, r9d
call fcn.18003a8a0
jmp 0x180056bbe
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x18005587d
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], ebx
lea edx, [r8 + 0x19]
call fcn.18003a660
jmp 0x180056bbe
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.18001a360
mov rcx, qword [rsi]
mov ebx, eax
lea r8d, [rbx - 1]
call fcn.18001b4c0
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 0x180055911
mov r9d, dword [rbp + 0x70]
xor edx, edx
mov r8d, eax
mov dword [rsp + 0x20], edx
mov edx, 0x1b
mov rcx, rsi
call fcn.18003a660
mov r8d, eax
jmp 0x180055942
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 0x18005595b
mov r8, rdi
or edx, 0xffffffff
call fcn.18003b100
jmp 0x180056bbe
test r8d, r8d
jns 0x180055967
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 0x180055991
or r9d, 0xffffffff
mov r8, rdi
mov rcx, rsi
call fcn.18003b3c0
jmp 0x180056bbe
test rdi, rdi
je 0x180056bbe
mov qword [rdx + 0x10], rdi
mov byte [rdx + 1], 0xff
jmp 0x180056bbe
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
movsx r8d, word [rdx + 0x30]
cmp dword [rax + 0x64], ecx
jg 0x1800559d0
mov edx, 0x1c
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.18003a660
mov rdx, qword [rbp + 0x68]
jmp 0x1800559fb
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 0x180056bbe
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 0x180055a33
mov r8, rdx
mov edx, 0xfffffffe
call fcn.18003b100
jmp 0x180056bbe
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 0x180055a65
mov r8, rdx
mov r9d, 0xfffffffe
mov rcx, rsi
mov rdx, r10
call fcn.18003b3c0
jmp 0x180056bbe
test rdx, rdx
je 0x180056bbe
mov qword [r10 + 0x10], rdx
mov byte [r10 + 1], 0xfe
jmp 0x180056bbe
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.180055700
mov edx, dword [rbp + 0x70]
mov r8d, eax
mov dword [rbp + 0x60], eax
cmp eax, edx
je 0x180055afc
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180055acf
mov r9d, edx
mov rcx, rsi
mov edx, 0x1f
mov dword [rsp + 0x20], ebx
call fcn.18003a660
mov edx, dword [rbp + 0x70]
jmp 0x180055af9
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.18005f2a0
movsxd rcx, dword [rsi + 0x3c]
movsx r8d, al
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x64], ecx
jg 0x180055b36
mov r9d, r8d
mov r8d, dword [rbp + 0x70]
mov edx, 0x28
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.18003a660
jmp 0x180055b63
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.1800552b0
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.180056d60
mov rsi, qword [rbp + 0x68]
lea r8, [rsp + 0x50]
mov rdx, qword [rsi + 0x18]
mov rcx, rdi
mov ebx, eax
call fcn.180056d60
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.180051190
jmp 0x180056605
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180056d60
lea r8, [rsp + 0x50]
mov rcx, rdi
mov ebx, eax
mov rax, qword [rbp + 0x68]
mov rdx, qword [rax + 0x18]
call fcn.180056d60
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.180051190
jmp 0x180056607
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180056d60
lea r8, [rsp + 0x50]
mov rcx, rdi
mov ebx, eax
mov rax, qword [rbp + 0x68]
mov rdx, qword [rax + 0x18]
call fcn.180056d60
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.18003a6c0
jmp 0x180056605
mov rdx, qword [rdx + 0x10]
movzx eax, byte [rdx]
cmp al, 0x84
jne 0x180055cac
mov r8d, 1
mov rcx, rdi
call fcn.180054f60
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x180056605
cmp al, 0x85
jne 0x180055ccd
mov rdx, qword [rdx + 8]
mov r8d, 1
mov rcx, rsi
call fcn.180054e10
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x180056605
lea r8, [rbp + 0x78]
lea rdx, [rbp - 0x70]
mov rcx, rdi
mov byte [rbp - 0x70], 0x84
mov qword [rbp - 0x6c], 0x4400
call fcn.180056d60
mov ebx, eax
mov rax, qword [rbp + 0x68]
lea r8, [rsp + 0x50]
mov rdx, qword [rax + 0x10]
mov rcx, rdi
call fcn.180056d60
mov edx, dword [rbp + 0x70]
mov r9d, ebx
mov dword [rsp + 0x20], edx
mov edx, 0x5a
mov r8d, eax
mov rcx, rsi
call fcn.18003a6c0
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x180056605
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rdi
call fcn.180056d60
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.18003a6c0
jmp 0x180056605
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180055d7e
mov edx, reloc.WS2_32.dll_shutdown
mov rcx, rsi
mov dword [rsp + 0x20], ebx
lea r8d, [rdx - 0x15]
call fcn.18003a660
mov rdx, qword [rbp + 0x68]
jmp 0x180055dac
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.180056d60
mov edx, dword [rsp + 0x48]
mov rcx, rsi
mov r8d, eax
call fcn.18003a7c0
mov rcx, qword [rsi + 0x30]
movsxd rdx, dword [rsi + 0x3c]
mov dword [rsp + 0x58], eax
cmp dword [rcx + 0x64], edx
jg 0x180055e04
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x16]
mov dword [rsp + 0x20], ebx
call fcn.18003a660
mov edx, dword [rsp + 0x58]
mov rcx, rsi
call fcn.18003b0c0
jmp 0x180056605
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.18003b0c0
jmp 0x180056605
mov r8, qword [rdx + 0x38]
test r8, r8
jne 0x180055e62
mov r8, qword [rdx + 8]
lea rdx, str.misuse_of_aggregate:__s__
mov rcx, rdi
call fcn.18001a500
jmp 0x180056bbe
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 0x180055f59
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.1800668b0
mov qword [rsp + 0x58], rax
test rax, rax
je 0x180056341
cmp qword [rax + 0x20], rbx
jne 0x180056341
movzx ecx, word [rax + 2]
mov eax, 0x200
test ax, cx
je 0x180055ffc
mov rcx, rsi
call fcn.18003ad30
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.180056ec0
mov r8d, dword [rbp + 0x78]
cmp r8d, 1
jle 0x180055feb
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 0x180055f75
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rbp + 0x70]
mov edx, 0x4d
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.18003a660
jmp 0x180055fa5
mov rcx, qword [rdx + 0x20]
mov qword [rsp + 0x70], rcx
test rcx, rcx
je 0x180055e9c
mov eax, dword [rcx]
mov dword [rbp + 0x78], eax
jmp 0x180055ea1
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.1800552b0
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.180056ec0
mov rcx, rdi
call fcn.180055310
add qword [rbp + 0x78], 0x28
dec qword [rsp + 0x60]
jne 0x180055f30
mov edx, dword [rsp + 0x40]
mov rcx, rsi
call fcn.18003ada0
jmp 0x180056bbe
mov eax, 0x400
test ax, cx
je 0x18005602c
mov rax, qword [rsp + 0x70]
mov r8d, dword [rbp + 0x70]
mov rcx, rdi
mov rdx, qword [rax + 8]
mov rdx, qword [rdx]
call fcn.180055700
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 0x1800560c3
mov rsi, qword [rsp + 0x70]
mov ebx, edx
nop dword [rax]
cmp edx, 0x20
jge 0x180056075
mov rcx, qword [rsi + 8]
mov rcx, qword [rcx + rbx]
call fcn.180053070
mov ecx, dword [rbp + 0x78]
mov edx, dword [rsp + 0x48]
test eax, eax
mov eax, dword [rsp + 0x50]
je 0x180056075
or dword [rsp + 0x40], eax
mov r8, qword [rsp + 0x58]
test byte [r8 + 2], 0x20
je 0x1800560a9
cmp qword [rsp + 0x68], 0
jne 0x1800560a9
mov rdx, qword [rsi + 8]
mov rcx, rdi
mov rdx, qword [rdx + rbx]
call fcn.180050de0
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 0x180056050
mov rsi, qword [rbp - 0x80]
xor ebx, ebx
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x180056155
cmp dword [rsp + 0x40], 0
jne 0x1800560fa
mov r9d, dword [rdi + 0x48]
mov r8d, dword [rdi + 0x4c]
mov dword [rsp + 0x48], r8d
cmp ecx, r9d
jg 0x1800560fa
lea eax, [r8 + rcx]
sub r9d, ecx
mov dword [rdi + 0x4c], eax
mov dword [rdi + 0x48], r9d
jmp 0x18005610b
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 0x180056133
mov rax, qword [rdx + 8]
mov r9, qword [rax]
movzx eax, byte [r9]
cmp al, 0x98
je 0x180056129
cmp al, 0x9a
jne 0x180056133
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.180057060
mov rcx, rdi
call fcn.180055310
mov rdx, qword [rsp + 0x70]
jmp 0x180056159
mov dword [rsp + 0x48], ebx
mov ecx, dword [rbp + 0x78]
cmp ecx, 2
jl 0x18005618c
mov rax, qword [rbp + 0x68]
test byte [rax + 4], 0x80
je 0x18005618c
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.1800922d0
mov qword [rsp + 0x58], rax
jmp 0x1800561b5
test ecx, ecx
jle 0x1800561b0
mov r9, qword [rdx + 8]
mov rdx, qword [rsp + 0x58]
mov r8d, ecx
mov r9, qword [r9]
mov rcx, qword [rsp + 0x60]
call fcn.1800922d0
mov qword [rsp + 0x58], rax
jmp 0x1800561b5
mov rax, qword [rsp + 0x58]
test byte [rax + 2], 0x20
je 0x180056287
cmp qword [rsp + 0x68], 0
jne 0x1800561d5
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 0x1800561fc
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
lea edx, [r9 + 0x22]
mov dword [rsp + 0x20], ebx
call fcn.18003a660
mov edx, eax
jmp 0x180056227
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 0x180056241
mov r8, qword [rsp + 0x68]
mov edx, 0xfffffffc
call fcn.18003b100
jmp 0x180056287
test edx, edx
jns 0x18005624a
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 0x180056275
mov r8, qword [rsp + 0x68]
mov r9d, 0xfffffffc
mov rcx, rsi
call fcn.18003b3c0
jmp 0x180056287
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x180056287
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.18003a6c0
mov rcx, qword [rsi]
cmp byte [rcx + 0x55], 0
je 0x1800562c1
mov r8, qword [rsp + 0x58]
mov edx, 0xfffffffb
call fcn.18003b100
jmp 0x180056301
test eax, eax
jns 0x1800562ca
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 0x1800562f4
mov r8, qword [rsp + 0x58]
mov r9d, 0xfffffffb
mov rcx, rsi
call fcn.18003b3c0
jmp 0x180056301
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 0x18005631f
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 0x180056bbe
test ebx, ebx
jne 0x180056bbe
mov edx, dword [rsp + 0x48]
mov rcx, rdi
call fcn.180058510
jmp 0x180056bbe
mov r8, qword [rsp + 0x78]
lea rdx, str.unknown_function:__s__
mov rcx, rdi
call fcn.18001a500
jmp 0x180056bbe
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call fcn.180053bd0
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, rsi
call fcn.18003ad30
mov rcx, rsi
mov dword [rbp + 0x78], eax
call fcn.18003ad30
mov rcx, qword [rsi + 0x30]
movsxd rdx, dword [rsi + 0x3c]
mov dword [rsp + 0x40], eax
cmp dword [rcx + 0x64], edx
jg 0x1800563b3
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], ebx
call fcn.18003a660
jmp 0x1800563df
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.1800544d0
mov rax, qword [rsi + 0x30]
movsxd r11, dword [rsi + 0x3c]
cmp dword [rax + 0x64], r11d
jg 0x180056421
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.18003a660
mov r10d, dword [rbp + 0x70]
jmp 0x180056454
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.18003ada0
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180056493
xor r9d, r9d
mov r8d, r10d
mov rcx, rsi
lea edx, [r9 + 0x25]
mov dword [rsp + 0x20], ebx
call fcn.18003a660
mov edx, dword [rsp + 0x40]
mov rcx, rsi
call fcn.18003ada0
jmp 0x180056bbe
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.18003ada0
jmp 0x180056bbe
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.180056d60
mov rdx, qword [rsp + 0x60]
lea r8, [rsp + 0x50]
mov rcx, rdi
mov dword [rsp + 0x58], eax
call fcn.180056d60
movzx ecx, byte [rdi + 0x1f]
mov r11d, eax
test cl, cl
jne 0x180056520
inc dword [rdi + 0x58]
mov ecx, dword [rdi + 0x58]
jmp 0x18005652c
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 0x180056540
inc dword [rdi + 0x58]
mov eax, dword [rdi + 0x58]
jmp 0x18005654c
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.180051190
mov rbx, qword [rbp - 0x80]
mov edx, dword [rsp + 0x50]
mov rbx, qword [rbx + 0x28]
mov rcx, rdi
call fcn.1800584c0
lea r8, [rsp + 0x50]
mov rdx, rbx
call fcn.180056d60
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.180051190
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.18003a6c0
mov edx, dword [rsp + 0x48]
mov rcx, rdi
call fcn.1800584c0
mov edx, ebx
call fcn.1800584c0
xor esi, esi
cmp dword [rbp + 0x78], 0
je 0x180056645
movzx r8d, byte [rdi + 0x1f]
cmp r8b, 8
jae 0x180056645
mov edx, esi
lea rcx, [rdi + 0x90]
mov eax, dword [rbp + 0x78]
cmp dword [rcx + 0xc], eax
je 0x180056641
inc edx
add rcx, 0x14
cmp edx, 0xa
jl 0x180056621
movzx ecx, r8b
mov dword [rdi + rcx*4 + 0x28], eax
inc byte [rdi + 0x1f]
jmp 0x180056645
mov byte [rcx + 6], 1
cmp dword [rsp + 0x50], 0
je 0x180056bbe
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x180056bbe
lea rcx, [rdi + 0x90]
mov eax, dword [rsp + 0x50]
cmp dword [rcx + 0xc], eax
je 0x180056687
inc esi
add rcx, 0x14
cmp esi, 0xa
jl 0x180056664
movzx ecx, dl
mov dword [rdi + rcx*4 + 0x28], eax
inc byte [rdi + 0x1f]
jmp 0x180056bbe
mov byte [rcx + 6], 1
jmp 0x180056bbe
mov rdx, qword [rdx + 0x10]
mov r8d, r9d
mov rcx, rdi
call fcn.180055700
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 0x1800566ec
mov edx, 0x86
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.18003a660
mov rdx, qword [rbp + 0x68]
mov r9d, dword [rbp + 0x70]
jmp 0x180056717
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 0x180056bbe
movsx rcx, ax
mov rax, qword [rdi + 8]
shl rcx, 5
cmp byte [rcx + rax + 0x19], 0x45
jne 0x180056bbe
mov r8d, r9d
mov edx, 0x27
mov rcx, rsi
call fcn.18003a7c0
jmp 0x180056bbe
cmp qword [rdi + 0x1d0], rbx
jne 0x180056776
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rdi
call fcn.18001a500
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rdx + 1], 2
jne 0x180056791
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 0x180056837
mov rdi, qword [rdx + 8]
mov rax, qword [rsi + 0x30]
movsxd rdx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], edx
jg 0x1800567cb
mov r9d, 4
xor r8d, r8d
mov rcx, rsi
lea edx, [r9 + 0x11]
mov dword [rsp + 0x20], ebx
call fcn.18003a660
mov edx, eax
jmp 0x1800567f5
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 0x18005680c
mov r8, rdi
xor edx, edx
call fcn.18003b100
jmp 0x180056bbe
test edx, edx
jns 0x180056815
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.18003b3c0
jmp 0x180056bbe
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.1800653f0
jmp 0x180056bbe
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.18003ad30
mov dword [rsp + 0x40], eax
mov rax, qword [rbp + 0x68]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x50], rcx
test rcx, rcx
je 0x1800568fd
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.180056d60
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 0x180056900
mov r10, rbx
mov eax, dword [rsp + 0x58]
mov qword [rsp + 0x60], 0xa
dec eax
test eax, eax
jle 0x180056ac2
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 0x180056939
mov rax, qword [rax]
mov qword [rbp - 8], rax
jmp 0x180056941
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 0x18005698f
lea eax, [rdx + rdx + 1]
mov rdx, qword [rcx + 0x88]
mov rcx, qword [rcx]
movsxd r8, eax
shl r8, 2
call fcn.180017710
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 0x1800569a6
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.180057850
mov rdx, qword [rsp + 0x68]
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rdx + 0x28]
mov rcx, rdi
call fcn.180056ec0
mov rax, qword [rsi + 0x30]
movsxd r11, dword [rsi + 0x3c]
cmp dword [rax + 0x64], r11d
jg 0x1800569ff
mov r9d, dword [rsp + 0x40]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0xd]
mov dword [rsp + 0x20], ebx
call fcn.18003a660
jmp 0x180056a2d
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], select
dec dword [rdi + 0x78]
lea rcx, [rdi + 0x9c]
mov r8d, 0xa
nop dword [rax]
mov edx, dword [rcx]
test edx, edx
je 0x180056a6a
mov eax, dword [rdi + 0x78]
cmp dword [rcx - 4], eax
jle 0x180056a6a
cmp byte [rcx - 6], bl
je 0x180056a68
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x180056a65
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 0x180056a40
mov rdx, qword [rsi + 0x30]
mov rcx, qword [rdx + 0x88]
test rcx, rcx
je 0x180056a97
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 0x180056928
movsxd rax, dword [rsp + 0x58]
test al, 1
je 0x180056b3f
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.180056ec0
dec dword [rdi + 0x78]
lea rcx, [rdi + 0x9c]
mov eax, 0xa
nop dword [rax + rax]
mov edx, dword [rcx]
test edx, edx
je 0x180056b2f
mov eax, dword [rdi + 0x78]
cmp dword [rcx - 4], eax
jle 0x180056b2a
cmp byte [rcx - 6], bl
je 0x180056b28
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x180056b25
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 0x180056b00
jmp 0x180056b91
mov rax, qword [rsi + 0x30]
movsxd rcx, dword [rsi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180056b65
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], ebx
call fcn.18003a660
jmp 0x180056b91
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 0x180056bb6
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