Function at 0x140051900
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 r10, qword [rcx + 0x10]
xor edi, edi
mov r11, qword [rcx]
mov r9d, r8d
mov qword [rsp + 0x50], r10
mov rsi, rdx
mov dword [rbp + 0x60], r8d
mov rbx, rcx
mov dword [rbp + 0x78], edi
mov dword [rsp + 0x48], edi
mov qword [rsp + 0x68], r11
test r10, r10
je 0x1400525cd
lea eax, [rdi + 0x65]
test rdx, rdx
je 0x140051955
movzx eax, byte [rdx]
mov dword [rsp + 0x40], eax
add eax, 0xffffffed
cmp eax, 0x8c
ja case.0x140051982.21
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x52a0c]
mov ecx, dword [rdx + rax*4 + 0x529a8]
add rcx, rdx
jmp rcx
mov rcx, qword [rsi + 0x38]
movsx rax, word [rsi + 0x32]
shl rax, 5
add rax, qword [rcx + 0x20]
cmp byte [rcx], dil
jne 0x1400519ab
mov edx, dword [rax + 0x14]
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rcx + 1], dil
je case.0x140051982.154
mov r8d, dword [rcx + 8]
mov edx, 0x2f
mov dword [rsp + 0x20], r9d
mov rcx, r10
mov r9d, dword [rax + 0x10]
call fcn.140037d60
jmp 0x140052994
mov ecx, dword [rsi + 0x2c]
test ecx, ecx
jns 0x1400519f5
mov eax, dword [rbx + 0x68]
test eax, eax
jle 0x1400519f2
movsx edx, word [rsi + 0x30]
add edx, eax
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, dword [rbx + 0x6c]
movzx eax, byte [rsi + 0x36]
movsx r8d, word [rsi + 0x30]
mov rdx, qword [rsi + 0x40]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], r9d
mov r9d, ecx
mov rcx, rbx
call fcn.140051730
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.140051210
jmp 0x140052994
mov rdx, qword [rsi + 8]
xor r8d, r8d
mov rcx, r10
call fcn.140051140
jmp 0x140052994
mov r8, qword [rsi + 8]
mov edx, r9d
mov rcx, r10
call fcn.140037e00
jmp 0x140052994
xor r8d, r8d
mov dword [rsp + 0x20], edi
mov rcx, r10
lea edx, [r8 + 0x1a]
call fcn.140037d60
jmp 0x140052994
mov rdx, qword [rsi + 8]
or rsi, 0xffffffffffffffff
add rdx, 2
je 0x140051a9f
mov rdi, rsi
nop dword [rax + rax]
inc rdi
cmp byte [rdx + rdi], 0
jne 0x140051a90
and edi, 0x3fffffff
mov rcx, qword [r10]
lea ebx, [rdi - 1]
mov r8d, ebx
call fcn.14001b5d0
mov r9d, dword [rbp + 0x70]
mov rdi, rax
mov rcx, qword [rsp + 0x50]
mov eax, ebx
cdq
mov dword [rsp + 0x20], 0
sub eax, edx
mov edx, 0x1c
sar eax, 1
mov r8d, eax
call fcn.140037d60
mov rcx, qword [rsp + 0x50]
mov r9d, esi
mov r8, rdi
mov edx, eax
call fcn.1400387d0
jmp 0x140052994
movsx r8d, word [rsi + 0x30]
mov edx, 0x1d
mov rcx, r10
mov dword [rsp + 0x20], edi
call fcn.140037d60
mov rax, qword [rsi + 8]
cmp byte [rax + 1], dil
je 0x140052994
movsx eax, word [rsi + 0x30]
dec eax
movsxd rcx, eax
mov rax, qword [rbx + 0x208]
mov rsi, qword [rax + rcx*8]
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + 8]
mov rcx, qword [rax]
test r8, r8
je 0x140051b91
cmp byte [rcx + 0x51], dil
jne 0x140051b91
mov eax, dword [rax + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rbx, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rbx + 0x10]
call fcn.1400384b0
mov edx, dword [rbp + 0x60]
mov qword [rbx + 0x10], rdi
test rsi, rsi
jne 0x140051b7b
mov qword [rbx + 0x10], rdi
mov eax, edx
mov byte [rbx + 1], dil
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rbx + 0x10], rsi
mov eax, edx
mov byte [rbx + 1], 0xfe
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r8, rsi
mov edx, 0xfffffffe
call fcn.1400384b0
jmp 0x140052994
mov edx, dword [rsi + 0x2c]
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rsi + 0x10]
mov rcx, rbx
call fcn.140051900
mov ecx, eax
mov dword [rbp + 0x60], eax
mov eax, dword [rbp + 0x70]
cmp ecx, eax
je 0x140051beb
mov r8d, ecx
mov dword [rsp + 0x20], edi
mov rcx, qword [rsp + 0x50]
mov r9d, eax
mov edx, 0x20
call fcn.140037d60
mov ecx, dword [rbp + 0x70]
mov dword [rbp + 0x60], ecx
mov rcx, qword [rsi + 8]
xor edx, edx
call fcn.14005a970
mov r8d, dword [rbp + 0x70]
mov edx, 0x28
mov rcx, qword [rsp + 0x50]
movsx r9d, al
mov dword [rsp + 0x20], edi
call fcn.140037d60
mov edx, dword [rbp + 0x60]
mov r8d, 1
mov rcx, rbx
call fcn.1400514f0
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rbx
call fcn.140052b30
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x48]
mov rcx, rbx
mov edi, eax
call fcn.140052b30
mov r9d, dword [rsp + 0x40]
mov dword [rsp + 0x38], 0x20
mov ecx, dword [rbp + 0x70]
mov r8, qword [rsi + 0x18]
mov rdx, qword [rsi + 0x10]
mov dword [rsp + 0x30], ecx
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edi
call fcn.14004dc40
jmp 0x14005249b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rbx
call fcn.140052b30
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x48]
mov rcx, rbx
mov edi, eax
call fcn.140052b30
xor r9d, r9d
mov dword [rsp + 0x38], 0xa0
cmp dword [rsp + 0x40], 0x49
sete r9b
add r9d, 0x4e
jmp 0x140051c60
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rbx
call fcn.140052b30
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0x48]
mov rcx, rbx
mov edi, eax
call fcn.140052b30
mov ecx, dword [rbp + 0x70]
mov r9d, edi
mov edx, dword [rsp + 0x40]
mov r8d, eax
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0x50]
call fcn.140037d60
jmp 0x14005249b
mov rdx, qword [rsi + 0x10]
movzx eax, byte [rdx]
cmp al, 0x84
jne 0x140051d28
mov r8d, 1
mov rcx, rbx
call fcn.140051210
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x14005249b
cmp al, 0x85
jne 0x140051d49
mov rdx, qword [rdx + 8]
mov r8d, 1
mov rcx, r10
call fcn.140051140
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x14005249b
lea r8, [rbp + 0x78]
mov byte [rbp - 0x70], 0x84
lea rdx, [rbp - 0x70]
mov qword [rbp - 0x6c], 0x4400
mov rcx, rbx
call fcn.140052b30
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x48]
mov rcx, rbx
mov edi, eax
call fcn.140052b30
mov ecx, dword [rbp + 0x70]
mov r9d, edi
mov dword [rsp + 0x20], ecx
mov r8d, eax
mov rcx, qword [rsp + 0x50]
mov edx, 0x5a
call fcn.140037d60
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0x60], eax
jmp 0x14005249b
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rbx
call fcn.140052b30
mov ecx, dword [rbp + 0x70]
mov r8d, eax
mov edx, dword [rsp + 0x40]
mov r9d, ecx
mov dword [rbp + 0x60], ecx
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x20], edi
call fcn.140037d60
jmp 0x14005249b
mov edx, reloc.WS2_32.dll_socket
mov dword [rsp + 0x20], edi
mov rcx, r10
lea r8d, [rdx - 0x16]
call fcn.140037d60
mov rdx, qword [rsi + 0x10]
lea r8, [rbp + 0x78]
mov rcx, rbx
call fcn.140052b30
mov edx, dword [rsp + 0x40]
xor r9d, r9d
mov rcx, qword [rsp + 0x50]
mov r8d, eax
mov dword [rsp + 0x20], edi
call fcn.140037d60
mov r9d, dword [rbp + 0x70]
xor esi, esi
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
mov edi, eax
mov dword [rsp + 0x20], esi
lea edx, [rsi + 0x17]
call fcn.140037d60
mov rcx, qword [rsp + 0x50]
mov edx, edi
call fcn.140038410
jmp 0x14005249d
mov rdx, qword [rsi + 0x38]
test rdx, rdx
jne 0x140051e5d
mov r8, qword [rsi + 8]
lea rdx, str.misuse_of_aggregate:__s__
mov rcx, rbx
call fcn.14001a630
jmp 0x140052994
movsx rax, word [rsi + 0x32]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 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 [rsi + 4], 0x4000
movzx r8d, byte [r11 + 0x4e]
mov dword [rsp + 0x40], edi
mov qword [rsp + 0x70], rdi
je 0x140051eaf
mov qword [rsp + 0x78], rdi
mov eax, edi
mov rdx, qword [rsi + 8]
mov dword [rbp + 0x78], eax
mov qword [rsp + 0x48], rdx
test rdx, rdx
jne 0x140051ec1
mov ecx, edi
jmp 0x140051ed4
mov rcx, qword [rsi + 0x20]
mov qword [rsp + 0x78], rcx
test rcx, rcx
je 0x140051e98
mov eax, dword [rcx]
jmp 0x140051e9a
or rcx, 0xffffffffffffffff
inc rcx
cmp byte [rdx + rcx], dil
jne 0x140051ec5
and ecx, 0x3fffffff
mov qword [rsp + 0x60], rcx
mov r9d, eax
mov byte [rsp + 0x28], dil
mov byte [rsp + 0x20], r8b
mov r8d, ecx
mov rcx, r11
call fcn.140060e40
mov qword [rsp + 0x58], rax
mov r8, rax
test rax, rax
je 0x140052262
cmp qword [rax + 0x18], rdi
je 0x140052262
movzx eax, word [rax + 2]
mov ecx, 0x200
test cx, ax
je 0x140051fd5
mov rsi, qword [rsp + 0x50]
mov rcx, rsi
call fcn.140038130
mov rdx, qword [rsp + 0x78]
mov rcx, rbx
mov r8d, dword [rbp + 0x70]
mov dword [rsp + 0x40], eax
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx]
call fcn.140052c90
mov ecx, dword [rbp + 0x78]
cmp ecx, 1
jle 0x14005296a
lea edx, [rcx - 1]
mov qword [rbp + 0x78], 0x28
mov qword [rsp + 0x68], rdx
nop dword [rax]
nop word [rax + rax]
mov r9d, dword [rsp + 0x40]
mov edx, 0x4d
mov r8d, dword [rbp + 0x70]
mov rcx, rsi
mov dword [rsp + 0x20], edi
call fcn.140037d60
mov edx, dword [rbp + 0x70]
mov r8d, 1
mov rcx, rbx
call fcn.1400514f0
inc dword [rbx + 0x70]
mov rcx, rbx
mov rax, qword [rsp + 0x78]
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rax + 8]
mov rax, qword [rbp + 0x78]
mov rdx, qword [rax + rdx]
call fcn.140052c90
mov rcx, rbx
call fcn.140051550
add qword [rbp + 0x78], 0x28
sub qword [rsp + 0x68], 1
jne 0x140051f70
jmp 0x14005296a
mov ecx, 0x400
test cx, ax
je 0x140052005
mov rax, qword [rsp + 0x78]
mov rcx, rbx
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rax + 8]
mov rdx, qword [rdx]
call fcn.140051900
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, dword [rbp + 0x78]
mov eax, edi
mov dword [rsp + 0x48], eax
test ecx, ecx
jle 0x14005209f
mov rsi, qword [rsp + 0x78]
mov r8, rdi
mov qword [rsp + 0x60], rdi
cmp eax, 0x20
jge 0x140052050
mov rcx, qword [rsi + 8]
mov rcx, qword [rcx + r8]
call fcn.14004fae0
mov r8, qword [rsp + 0x60]
test eax, eax
mov eax, dword [rsp + 0x48]
je 0x14005204d
mov ecx, dword [rsp + 0x40]
bts ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, dword [rbp + 0x78]
mov rdx, qword [rsp + 0x58]
test byte [rdx + 2], 0x20
je 0x140052083
cmp qword [rsp + 0x70], rdi
jne 0x140052083
mov rdx, qword [rsi + 8]
mov rcx, rbx
mov rdx, qword [rdx + r8]
call fcn.14004d880
mov ecx, dword [rbp + 0x78]
mov r8, qword [rsp + 0x60]
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x48]
inc eax
add r8, 0x28
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x60], r8
cmp eax, ecx
jl 0x140052023
mov rsi, qword [rbp + 0x68]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x14005212c
cmp dword [rsp + 0x40], edi
jne 0x1400520d5
mov r9d, dword [rbx + 0x44]
mov r10d, dword [rbx + 0x48]
mov dword [rsp + 0x48], r10d
cmp ecx, r9d
jg 0x1400520d5
lea eax, [r10 + rcx]
sub r9d, ecx
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], r9d
jmp 0x1400520e6
mov eax, dword [rbx + 0x54]
lea r10d, [rax + 1]
add eax, ecx
mov dword [rbx + 0x54], eax
mov dword [rsp + 0x48], r10d
test byte [r8 + 2], 0xc0
je 0x140052107
mov rax, qword [rdx + 8]
mov rcx, qword [rax]
movzx eax, byte [rcx]
add al, 0x66
test al, 0xfd
jne 0x140052107
movzx eax, byte [r8 + 2]
and al, 0xc0
mov byte [rcx + 0x36], al
inc dword [rbx + 0x70]
xor r9d, r9d
mov r8d, r10d
mov byte [rsp + 0x20], 3
mov rcx, rbx
call fcn.140052e80
mov rcx, rbx
call fcn.140051550
mov rdx, qword [rsp + 0x78]
jmp 0x140052130
mov dword [rsp + 0x48], edi
cmp dword [rbp + 0x78], 2
jl 0x140052160
test byte [rsi + 4], 0x80
je 0x140052160
mov r9, qword [rdx + 8]
mov esi, dword [rbp + 0x78]
mov r8d, esi
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov r9, qword [r9 + 0x28]
call fcn.140084180
mov qword [rsp + 0x58], rax
jmp 0x14005218c
mov esi, dword [rbp + 0x78]
test esi, esi
jle 0x140052187
mov r9, qword [rdx + 8]
mov r8d, esi
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov r9, qword [r9]
call fcn.140084180
mov qword [rsp + 0x58], rax
jmp 0x14005218c
mov rax, qword [rsp + 0x58]
test byte [rax + 2], 0x20
je 0x1400521d9
cmp qword [rsp + 0x70], rdi
jne 0x1400521a7
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x70], rax
xor r9d, r9d
mov dword [rsp + 0x20], edi
mov rdi, qword [rsp + 0x50]
xor r8d, r8d
mov rcx, rdi
lea edx, [r9 + 0x22]
call fcn.140037d60
mov r8, qword [rsp + 0x70]
mov r9d, 0xfffffffc
mov edx, eax
mov rcx, rdi
call fcn.1400387d0
jmp 0x1400521de
mov rdi, qword [rsp + 0x50]
mov eax, dword [rbp + 0x70]
mov edx, 0x23
mov r9d, dword [rsp + 0x48]
mov rcx, rdi
mov r8d, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
call fcn.140037d60
mov r8, qword [rsp + 0x58]
mov r9d, 0xfffffffb
mov edx, eax
mov rcx, rdi
call fcn.1400387d0
mov rax, qword [rdi]
mov ecx, dword [rdi + 0x3c]
dec ecx
cmp byte [rax + 0x51], 0
je 0x140052228
lea rax, [0x140120b10]
jmp 0x140052237
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
lea rax, [rax + rcx*8]
mov byte [rax + 3], sil
test esi, esi
je 0x140052994
cmp dword [rsp + 0x40], 0
jne 0x140052994
mov edx, dword [rsp + 0x48]
mov r8d, esi
mov rcx, rbx
call fcn.140054240
jmp 0x140052994
mov r9, qword [rsp + 0x48]
lea rdx, str.unknown_function:__.s__
mov r8d, dword [rsp + 0x60]
mov rcx, rbx
call fcn.14001a630
jmp 0x140052994
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.1400504d0
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, r10
call fcn.140038130
mov rcx, qword [rsp + 0x50]
mov dword [rbp + 0x78], eax
call fcn.140038130
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x20], edi
lea edx, [r8 + 0x1a]
call fcn.140037d60
mov r9d, dword [rsp + 0x40]
mov rdx, rsi
mov r8d, dword [rbp + 0x78]
mov rcx, rbx
call fcn.140050b20
mov rbx, qword [rsp + 0x50]
mov edx, reloc.WS2_32.dll_socket
mov esi, dword [rbp + 0x70]
mov rcx, rbx
mov r9d, esi
mov dword [rsp + 0x20], edi
lea r8d, [rdx - 0x16]
call fcn.140037d60
mov r8, qword [rbx + 0x30]
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x140052324
or eax, 0xffffffff
sub eax, dword [rbp + 0x78]
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
xor r9d, r9d
dec eax
mov dword [rsp + 0x20], edi
mov dword [r8 + 0x64], eax
mov rcx, rbx
mov r8d, esi
lea edx, [r9 + 0x25]
call fcn.140037d60
mov rdx, qword [rbx + 0x30]
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x140052365
or rax, 0xffffffffffffffff
sub eax, dword [rsp + 0x40]
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rbx + 0x3c]
jmp 0x14005298f
mov rdi, qword [rsi + 0x10]
lea r8, [rbp + 0x78]
mov rax, qword [rsi + 0x20]
mov rdx, rdi
mov rcx, rbx
mov qword [rsp + 0x70], rdi
mov rax, qword [rax + 8]
mov qword [rsp + 0x60], rax
mov rsi, qword [rax]
mov qword [rsp + 0x68], rsi
call fcn.140052b30
lea r8, [rsp + 0x48]
mov dword [rsp + 0x40], eax
mov rdx, rsi
mov rcx, rbx
call fcn.140052b30
movzx ecx, byte [rbx + 0x1f]
mov edx, eax
test cl, cl
jne 0x1400523c0
inc dword [rbx + 0x54]
mov ecx, dword [rbx + 0x54]
jmp 0x1400523cc
dec cl
movzx eax, cl
mov byte [rbx + 0x1f], al
mov ecx, dword [rbx + rax*4 + 0x24]
movzx eax, byte [rbx + 0x1f]
mov dword [rsp + 0x58], ecx
test al, al
jne 0x1400523e0
inc dword [rbx + 0x54]
mov esi, dword [rbx + 0x54]
jmp 0x1400523ec
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov esi, dword [rbx + rax*4 + 0x24]
mov eax, dword [rsp + 0x40]
mov r9d, 0x53
mov r8, qword [rsp + 0x68]
mov dword [rsp + 0x38], 0x20
mov dword [rsp + 0x30], ecx
mov rcx, rbx
mov dword [rsp + 0x28], edx
mov rdx, rdi
mov dword [rsp + 0x20], eax
call fcn.14004dc40
mov rdi, qword [rsp + 0x60]
mov rcx, rbx
mov edx, dword [rsp + 0x48]
mov rdi, qword [rdi + 0x28]
call fcn.1400541f0
lea r8, [rsp + 0x48]
mov rdx, rdi
call fcn.140052b30
mov rdx, qword [rsp + 0x70]
mov r9d, 0x51
mov dword [rsp + 0x38], 0x20
mov r8, rdi
mov dword [rsp + 0x30], esi
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
call fcn.14004dc40
mov eax, dword [rbp + 0x70]
mov r9d, esi
mov r8d, dword [rsp + 0x58]
mov edx, 0x48
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x20], eax
call fcn.140037d60
mov edx, dword [rsp + 0x58]
mov rcx, rbx
call fcn.1400541f0
mov edx, esi
call fcn.1400541f0
xor esi, esi
cmp dword [rbp + 0x78], 0
je 0x1400524db
movzx r8d, byte [rbx + 0x1f]
cmp r8b, 8
jae 0x1400524db
mov ecx, esi
lea rax, [rbx + 0x88]
mov edx, dword [rbp + 0x78]
cmp dword [rax + 0xc], edx
je 0x1400524d7
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400524b7
movzx eax, r8b
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
jmp 0x1400524db
mov byte [rax + 6], 1
cmp dword [rsp + 0x48], 0
je 0x140052994
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x140052994
lea rax, [rbx + 0x88]
nop word [rax + rax]
mov ecx, dword [rsp + 0x48]
cmp dword [rax + 0xc], ecx
je 0x140052523
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x140052500
movzx eax, dl
mov dword [rbx + rax*4 + 0x24], ecx
inc byte [rbx + 0x1f]
jmp 0x140052994
mov byte [rax + 6], 1
jmp 0x140052994
mov rdx, qword [rsi + 0x10]
mov rcx, rbx
call fcn.140051900
mov edx, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rbx, qword [rsi + 0x40]
mov edx, 0x86
movsx eax, word [rsi + 0x30]
mov dword [rsp + 0x20], edi
movsx ecx, word [rbx + 0x3e]
inc ecx
lea r8d, [rax + 1]
imul ecx, dword [rsi + 0x2c]
add r8d, ecx
mov rcx, r10
call fcn.140037d60
movzx eax, word [rsi + 0x30]
test ax, ax
js 0x140052994
movsx rax, ax
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
add rcx, rcx
cmp byte [rax + rcx*8 + 0x29], 0x45
jne 0x140052994
mov r8d, dword [rbp + 0x70]
xor r9d, r9d
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x20], edi
lea edx, [r9 + 0x27]
call fcn.140037d60
jmp 0x140052994
cmp qword [rbx + 0x1c8], rdi
jne 0x1400525db
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rbx
call fcn.14001a630
xor eax, eax
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [rsi + 1], 2
jne 0x1400525f6
mov rax, qword [rbx + 0x1c0]
mov rcx, rbx
test rax, rax
cmovne rcx, rax
mov byte [rcx + 0x21], 1
movzx eax, byte [rsi + 1]
cmp al, 4
jne 0x140052632
mov rbx, qword [rsi + 8]
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x20], edi
mov rcx, r10
lea edx, [r9 + 0x12]
call fcn.140037d60
mov rcx, qword [rsp + 0x50]
xor r9d, r9d
mov r8, rbx
mov edx, eax
call fcn.1400387d0
jmp 0x140052994
mov rcx, qword [rsi + 8]
mov qword [rbp + 0x78], rcx
mov rcx, rbx
movsx esi, al
call fcn.140076f80
mov qword [rsp + 0x68], rax
cmp esi, 2
jne 0x140052661
mov rcx, qword [rbx + 0x1c0]
test rcx, rcx
cmovne rbx, rcx
mov byte [rbx + 0x21], 1
mov r9d, esi
mov dword [rsp + 0x20], edi
mov edx, socket
mov r8d, 0x713
mov rcx, rax
call fcn.140037d60
mov r8, qword [rbp + 0x78]
xor r9d, r9d
mov rcx, qword [rsp + 0x68]
mov edx, eax
call fcn.1400387d0
jmp 0x140052994
mov rax, qword [rsi + 0x20]
mov rcx, r10
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x70], rdi
mov rdx, qword [rax + 8]
mov eax, dword [rax]
mov qword [rsp + 0x60], rdx
mov dword [rsp + 0x58], eax
call fcn.140038130
mov rdx, qword [rsi + 0x10]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x48], rdx
test rdx, rdx
je 0x14005272f
movups xmm0, xmmword [rdx]
lea r8, [rbp + 0x78]
mov rcx, rbx
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rbp - 0x60], xmm1
movups xmm0, xmmword [rdx + 0x20]
movaps xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rdx + 0x30]
movaps xmmword [rbp - 0x40], xmm1
movsd xmm0, qword [rdx + 0x40]
movsd qword [rbp - 0x30], xmm0
call fcn.140052b30
movzx ecx, byte [rbp - 0x70]
lea r10, [rbp - 0x20]
and dword [rbp - 0x6c], 0xffffefff
mov rdx, qword [rsp + 0x48]
mov dword [rbp - 0x44], eax
lea rax, [rbp - 0x70]
mov qword [rbp - 0x10], rax
mov byte [rbp - 0x3a], cl
mov byte [rbp - 0x70], 0x9f
mov byte [rbp - 0x20], 0x4f
mov qword [rsp + 0x70], r10
jmp 0x140052732
mov r10, rdi
mov eax, dword [rsp + 0x58]
or r9, 0xffffffffffffffff
mov rsi, qword [rsp + 0x50]
dec eax
cdqe
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x68], 0xa
test rax, rax
jle 0x1400528dc
lea rcx, [rax - 1]
mov rax, qword [rsp + 0x60]
shr rcx, 1
inc rcx
mov qword [rsp + 0x78], rcx
nop dword [rax]
inc dword [rbx + 0x70]
test rdx, rdx
je 0x140052781
mov rax, qword [rax]
mov qword [rbp - 8], rax
jmp 0x140052789
mov r10, qword [rax]
mov qword [rsp + 0x70], r10
mov rcx, qword [rsi + 0x30]
mov qword [rsp + 0x50], rcx
mov r8d, dword [rcx + 0x78]
mov dword [rbp + 0x78], r8d
lea eax, [r8 + 1]
mov dword [rcx + 0x78], eax
lea eax, [r8 - 1]
test r8d, eax
jne 0x1400527e1
mov rdx, qword [rcx + 0x80]
lea eax, [r8*2 + 1]
mov rcx, qword [rcx]
movsxd r8, eax
shl r8, 2
call fcn.140017ab0
mov rcx, qword [rsp + 0x50]
or r9, 0xffffffffffffffff
mov r8d, dword [rbp + 0x78]
mov r10, qword [rsp + 0x70]
mov qword [rcx + 0x80], rax
mov rdx, qword [rcx + 0x80]
test rdx, rdx
je 0x1400527f4
movsxd rax, r8d
mov dword [rdx + rax*4], r9d
not r8d
mov r9d, sendto
mov rdx, r10
mov dword [rbp + 0x78], r8d
mov rcx, rbx
call fcn.140053640
mov rdx, qword [rsp + 0x60]
mov rcx, rbx
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rdx + 0x28]
call fcn.140052c90
mov r9d, dword [rsp + 0x40]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea edx, [r8 + 0xe]
call fcn.140037d60
dec dword [rbx + 0x70]
lea rcx, [rbx + 0x94]
mov r8d, 0xa
nop dword [rax]
mov edx, dword [rcx]
test edx, edx
je 0x14005287c
mov eax, dword [rbx + 0x70]
cmp dword [rcx - 4], eax
jle 0x14005287c
cmp byte [rcx - 6], dil
je 0x14005287a
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x140052876
movzx eax, al
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
mov byte [rcx - 6], dil
mov dword [rcx], edi
add rcx, 0x14
sub r8, 1
jne 0x140052850
mov rdx, qword [rsi + 0x30]
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x1400528a5
mov eax, dword [rbp + 0x78]
not eax
movsxd rcx, eax
mov eax, dword [rsi + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rsi + 0x3c]
mov r9, 0xffffffffffffffff
mov r10, qword [rsp + 0x70]
dec eax
mov dword [rdx + 0x64], eax
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
add rax, 0x50
sub qword [rsp + 0x78], 1
mov qword [rsp + 0x60], rax
jne 0x140052770
mov rax, qword [rbp - 0x80]
test byte [rsp + 0x58], 1
je 0x140052953
inc dword [rbx + 0x70]
lea rax, [rax + rax*4]
mov rdx, qword [rbp - 0x78]
mov rcx, rbx
mov r8d, dword [rbp + 0x70]
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx + rax*8]
call fcn.140052c90
dec dword [rbx + 0x70]
lea rcx, [rbx + 0x94]
mov eax, 0xa
mov edx, dword [rcx]
test edx, edx
je 0x140052942
mov eax, dword [rbx + 0x70]
cmp dword [rcx - 4], eax
jle 0x14005293d
cmp byte [rcx - 6], dil
je 0x14005293b
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x140052937
movzx eax, al
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
mov byte [rcx - 6], dil
mov dword [rcx], edi
mov rax, qword [rsp + 0x68]
add rcx, 0x14
sub rax, 1
mov qword [rsp + 0x68], rax
jne 0x140052911
jmp 0x14005296a
mov r9d, dword [rbp + 0x70]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea edx, [r8 + 0x1a]
call fcn.140037d60
mov rdx, qword [rsi + 0x30]
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x14005298c
or rax, 0xffffffffffffffff
sub eax, dword [rsp + 0x40]
movsxd rcx, eax
mov eax, dword [rsi + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rsi + 0x3c]
dec eax
mov dword [rdx + 0x64], eax
mov edx, dword [rbp + 0x60]
mov eax, edx
add rsp, 0x138
pop rdi
pop rsi
pop rbx
pop rbp
ret