Function at 0x5109e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
mov r12, qword [rcx + 0x58]
mov rbx, qword [rcx + 0x60]
mov rsi, rcx
cmp r12, rbx
je 0x50fffd
mov rdi, qword [0x0071cad0]
lea r13, [0x005bf7d0]
mov rdx, rbx
mov r15, r12
mov rax, qword [0x0071c9a0]
sub rdx, r12
and edx, 8
lea r14, [rdi + 0x18]
lea rbp, [rax + 8]
jne 0x510080
mov qword [rsp + 0x170], rsi
mov rsi, r15
mov r12, qword [rsi]
test r12, r12
je 0x50ff73
mov rax, qword [r12]
mov rdx, qword [rax + 0x20]
cmp rdx, r13
jne 0x5108d0
lea rcx, [rdi + 0x90]
mov qword [r12], r14
mov qword [r12 + 0x10], rcx
mov rcx, qword [r12 + 0x40]
lea r8, [rdi + 0x180]
mov qword [r12 + 0x28], r8
mov r9d, dword [rcx]
test r9d, r9d
je 0x510065
cmp r9d, 0xffffffff
je 0x50ff50
lock sub dword [rcx], 1
je 0x510060
nop word [rax + rax]
lea rcx, [r12 + 0x10]
mov rdx, rbp
call fcn.005ba200
mov rcx, r12
call qword [0x0075cea4]
mov edx, 0x48
mov rcx, r12
call fcn.005ab728
lea r15, [rsi + 8]
mov rsi, qword [rsi + 8]
test rsi, rsi
je 0x50ffe4
mov r10, qword [rsi]
mov r11, qword [r10 + 0x20]
cmp r11, r13
jne 0x5108c1
mov rcx, qword [rsi + 0x40]
lea r12, [rdi + 0x90]
mov qword [rsi], r14
lea rax, [rdi + 0x180]
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x28], rax
mov edx, dword [rcx]
test edx, edx
je 0x510040
cmp edx, 0xffffffff
je 0x50ffc2
lock sub dword [rcx], 1
je 0x510032
lea rcx, [rsi + 0x10]
mov rdx, rbp
call fcn.005ba200
mov rcx, rsi
call qword [0x0075cea4]
mov edx, 0x48
mov rcx, rsi
call fcn.005ab728
lea rsi, [r15 + 8]
cmp rbx, rsi
jne 0x50fef1
mov rsi, qword [rsp + 0x170]
mov rbx, qword [rsi + 0x58]
mov rcx, qword [rsi + 0x30]
mov qword [rsi + 0x60], rbx
mov r8, qword [rcx + 0x50]
mov r9, qword [r8 + 0x18]
sub r9, qword [r8 + 0x10]
sar r9, 3
test r9d, r9d
jne 0x510120
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsi + 0x40]
nop word cs:[rax + rax]
mov r8d, 8
mov edx, reloc.WS2_32.dll_recv
call qword [0x0075cc74]
jmp 0x50ffc2
mov rcx, qword [r12 + 0x40]
mov r8d, 8
mov edx, reloc.WS2_32.dll_recv
call qword [0x0075cc74]
jmp 0x50ff50
mov r15, qword [r12]
test r15, r15
je 0x510103
mov rcx, qword [r15]
mov r8, qword [rcx + 0x20]
cmp r8, r13
jne 0x5108da
mov rcx, qword [r15 + 0x40]
lea r9, [rdi + 0x90]
mov qword [r15], r14
lea r10, [rdi + 0x180]
mov qword [r15 + 0x10], r9
mov qword [r15 + 0x28], r10
mov r11d, dword [rcx]
test r11d, r11d
je 0x5100d0
cmp r11d, 0xffffffff
je 0x5100e1
lock sub dword [rcx], 1
jne 0x5100e1
mov rcx, qword [r15 + 0x40]
nop
mov r8d, 8
mov edx, reloc.WS2_32.dll_recv
call qword [0x0075cc74]
lea rcx, [r15 + 0x10]
mov rdx, rbp
call fcn.005ba200
mov rcx, r15
call qword [0x0075cea4]
mov edx, 0x48
mov rcx, r15
call fcn.005ab728
lea r15, [r12 + 8]
cmp rbx, r15
jne 0x50fee6
jmp 0x50fff9
lea r12, [rsp + 0xe0]
mov rbx, qword [0x0075d33c]
mov edx, 0xff
mov r9d, 0x96
mov rcx, r12
mov qword [rsp + 0x60], r12
mov r8d, 0x4b
mov dword [rsp + 0x20], 0xff
call rbx
lea rcx, [r12 + 0x10]
xor edx, edx
mov r9d, 0xff
mov r8d, 0x82
mov dword [rsp + 0x20], 0xff
call rbx
lea rcx, [r12 + 0x20]
mov r9d, reloc.WS2_32.dll_sendto
mov r8d, 0xff
mov edx, reloc.WS2_32.dll_gethostname
mov dword [rsp + 0x20], 0xff
call rbx
xor r8d, r8d
mov r9d, 0x8b
mov edx, 0x8b
lea rcx, [r12 + 0x30]
mov dword [rsp + 0x20], 0xff
call rbx
mov ecx, 0x40
call fcn.005ab718
mov r10d, dword [rsp + 0xe0]
mov rbx, qword [rsi + 0x30]
mov r15, rax
mov r11, qword [rsp + 0xe4]
mov r13d, dword [rsp + 0x100]
mov dword [rax], r10d
mov edx, dword [rsp + 0xf0]
mov r10, qword [rbx + 0x50]
mov qword [rax + 4], r11
movzx eax, word [rsp + 0xec]
mov dword [r15 + 0x20], r13d
mov rdi, qword [rsp + 0xf4]
movzx ebp, word [rsp + 0xfc]
mov dword [r15 + 0x10], edx
mov r11, qword [r10 + 0x238]
mov qword [rsp + 0x68], r10
mov r13, qword [r10 + 0x230]
mov word [r15 + 0xc], ax
movabs rax, 0x6f96f96f96f96f97
mov r14, qword [rsp + 0x104]
mov qword [r15 + 0x14], rdi
movzx ecx, word [rsp + 0x10c]
mov word [r15 + 0x1c], bp
mov qword [rsp + 0x50], r11
mov r8d, dword [rsp + 0x110]
sub r11, r13
mov r9, qword [rsp + 0x114]
sar r11, 3
mov qword [r15 + 0x24], r14
movzx r12d, word [rsp + 0x11c]
imul r11, rax
mov word [r15 + 0x2c], cx
mov dword [r15 + 0x30], r8d
mov qword [r15 + 0x34], r9
mov word [r15 + 0x3c], r12w
test r11, r11
mov qword [rsp + 0x58], r11
je 0x51077d
xor ebp, ebp
xor ebx, ebx
imul rdx, rbx, 0x138
mov rdi, qword [0x0075cc7c]
mov qword [rsp + 0x88], rdi
add r13, rdx
mov r9, qword [r13 + 0xc0]
cmp qword [r13 + 0xc8], r9
je 0x510324
lea r14, [rsp + 0xc0]
xor edi, edi
xor r8d, r8d
lea r12, [rsp + 0x88]
lea rcx, [r9 + r8*8]
pxor xmm1, xmm1
pxor xmm0, xmm0
mov rdx, r14
cvtss2sd xmm1, dword [rcx]
cvtss2sd xmm0, dword [rcx + 4]
mov rcx, r12
movsd qword [rsp + 0xc0], xmm1
movsd qword [rsp + 0xc8], xmm0
call fcn.0065a810
mov r9, qword [r13 + 0xc0]
lea r8d, [rdi + 1]
mov r10, qword [r13 + 0xc8]
mov rdi, r8
sub r10, r9
sar r10, 3
cmp r8, r10
jb 0x5102d1
pxor xmm1, xmm1
lea r12, [rsp + 0xb0]
mov r9d, 1
mov r8d, 0x66
cvtss2sd xmm1, dword [r13 + 0xb8]
mov rcx, r12
call qword [0x0075ced4]
lea rdi, [rsp + 0x98]
add ebp, 1
mov r8d, 0xa
mov qword [rsp + 0x78], rdi
mov edx, ebp
mov rcx, rdi
call qword [0x0075cee4]
lea r14, [rsp + 0xa0]
mov r8d, 3
lea rdx, [0x006e9e19]
mov rcx, r14
call qword [0x0075ceb4]
mov rdx, rdi
mov rcx, r14
mov r13, qword [0x0075cecc]
call r13
mov r11, qword [rsp + 0xa0]
mov qword [rsp + 0xa8], r11
mov eax, dword [r11]
add eax, 1
cmp eax, 1
ja 0x5108a0
lea rdi, [rsp + 0xc0]
mov r8d, reloc.WS2_32.dll_sendto
lea rdx, str.___argmax__H_r____
mov rcx, rdi
call qword [0x0075ceb4]
lea rcx, [rsp + 0xa8]
mov rdx, rdi
mov qword [rsp + 0x50], rcx
call r13
mov rcx, qword [rsp + 0xc0]
mov edx, dword [rcx]
test edx, edx
je 0x510860
cmp edx, 0xffffffff
je 0x510416
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xc0]
je 0x510860
mov r8, qword [rsp + 0xa8]
mov qword [rsp + 0x90], r8
mov r9d, dword [r8]
add r9d, 1
cmp r9d, 1
ja 0x510880
lea rcx, [rsp + 0x90]
mov rdx, r12
mov qword [rsp + 0x70], rcx
call r13
mov rcx, qword [rsp + 0xa8]
mov r10d, dword [rcx]
test r10d, r10d
je 0x510840
cmp r10d, 0xffffffff
je 0x510476
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa8]
je 0x510840
mov rcx, qword [rsp + 0xa0]
mov r13d, dword [rcx]
test r13d, r13d
je 0x510820
cmp r13d, 0xffffffff
je 0x5104a2
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa0]
je 0x510820
mov rcx, qword [rsp + 0x98]
mov r11d, dword [rcx]
test r11d, r11d
je 0x510800
cmp r11d, 0xffffffff
je 0x5104ce
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x98]
je 0x510800
mov rcx, qword [rsp + 0xb0]
mov eax, dword [rcx]
test eax, eax
je 0x5107e0
cmp eax, 0xffffffff
je 0x5104f7
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xb0]
je 0x5107e0
and ebx, 3
mov r9, qword [rsp + 0x90]
shl rbx, 4
add rbx, r15
mov edx, dword [rbx]
mov r8, qword [rbx + 4]
mov qword [rsp + 0xa8], r9
movzx ebx, word [rbx + 0xc]
mov dword [rsp + 0xb0], edx
mov qword [rsp + 0xb4], r8
mov word [rsp + 0xbc], bx
mov ecx, dword [r9]
add ecx, 1
cmp ecx, 1
ja 0x510890
mov r10d, dword [rsp + 0xb0]
mov ecx, 0x48
mov r13, qword [rsp + 0xb4]
movzx r11d, word [rsp + 0xbc]
mov dword [rsp + 0xc0], r10d
mov qword [rsp + 0xc4], r13
mov word [rsp + 0xcc], r11w
call fcn.005ab718
mov rbx, rax
mov rax, qword [0x006e9e40]
xor r9d, r9d
mov r8, rdi
mov rdx, qword [rsp + 0x50]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.00543340
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0xa0], rbx
mov edx, dword [rcx]
test edx, edx
je 0x5107c0
cmp edx, 0xffffffff
je 0x5105d0
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa8]
je 0x5107c0
mov r8, qword [rsp + 0xa0]
mov r9d, 2
mov rdx, r12
movsd xmm2, qword [0x006e9e70]
lea rcx, [r8 + 0x10]
call fcn.005ba1e0
mov r12, qword [rsp + 0xa0]
mov rdx, qword [rsi + 0x50]
lea rcx, [r12 + 0x10]
call fcn.005ba1b8
mov rcx, qword [fcn.00543500]
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe8], 0
mov rbx, qword [rsi + 0x50]
mov r9, qword [0x0071c560]
mov r13, qword [rsp + 0xa0]
mov qword [rsp + 0xe0], rcx
mov ecx, 0x20
mov qword [rsp + 0xd0], r9
call fcn.005ab718
mov rdx, qword [rsp + 0xe8]
lea r10, [0x0065c820]
mov r9, r13
mov rcx, rdi
mov r11, qword [rsp + 0xe0]
mov dword [rax], 1
mov qword [rax + 8], r10
mov r8, qword [0x0071c570]
mov qword [rax + 0x18], rdx
mov rdx, rbx
mov qword [rax + 0x10], r11
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x40], r8
lea r8, [rsp + 0xd0]
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x20], rax
call qword [0x0075ce24]
mov rcx, rdi
call qword [0x0075ccb4]
mov rcx, qword [rsp + 0xa0]
lea rdx, [rsp + 0x88]
call fcn.00542f20
mov rdx, qword [rsi + 0x60]
cmp rdx, qword [rsi + 0x68]
je 0x5108b0
mov r14, qword [rsp + 0xa0]
add rdx, 8
mov qword [rdx - 8], r14
mov qword [rsi + 0x60], rdx
mov rcx, qword [rsp + 0x90]
mov edi, dword [rcx]
test edi, edi
je 0x5107a1
cmp edi, 0xffffffff
je 0x510725
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x90]
je 0x5107a1
mov rcx, qword [rsp + 0x88]
mov r12d, dword [rcx]
test r12d, r12d
je 0x510763
cmp r12d, 0xffffffff
je 0x510749
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x88]
je 0x510763
mov ebx, ebp
cmp rbx, qword [rsp + 0x58]
jae 0x51077d
mov r13, qword [rsp + 0x68]
mov r13, qword [r13 + 0x230]
jmp 0x510293
mov r8d, 8
mov edx, reloc.WS2_32.dll_recv
mov ebx, ebp
call qword [0x0075cc74]
cmp rbx, qword [rsp + 0x58]
jb 0x510752
mov rcx, qword [rsi + 0x50]
call fcn.0053e640
mov rcx, qword [rsi + 0x50]
mov r9, qword [rcx]
call qword [r9 + 0x1d8]
mov rcx, r15
call fcn.005ab730
jmp 0x51001e
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x510725
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x5105d0
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x5104f7
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x5104ce
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x5104a2
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x510476
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x510416
lock add dword [r8], 1
jmp 0x510437
lock add dword [r9], 1
jmp 0x510541
lock add dword [r11], 1
jmp 0x5103bc
lea rcx, [rsi + 0x58]
mov r8, r14
call fcn.006a98f0
jmp 0x510700
mov rcx, rsi
call r11
jmp 0x50ffe4
mov rcx, r12
call rdx
jmp 0x50ff73
mov rcx, r15
call r8
jmp 0x510103
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x30]
call fcn.00465c30
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x50fe90
cmp edx, 1
je 0x58ea40
cmp edx, 2
je 0x58ea35
test edx, edx
je 0x58ea30
ret
jmp fcn.0050fb60
jmp 0x50fe90
jmp 0x5109e0