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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x148
mov rax, qword [0x140481f48]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rax, qword [rcx]
movzx ebp, r9w
mov rbx, qword [rcx + 0x10]
mov rsi, r8
mov word [rsp + 0x30], r9w
mov r10, rdx
xor r9d, r9d
mov qword [rsp + 0xb8], r8
mov rax, qword [rax]
mov r13, rcx
mov qword [rsp + 0x80], rdx
mov r14d, r9d
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x58], rax
mov rdi, qword [rax]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x68], r9
mov qword [rsp + 0xb0], rbx
cmp byte [rdi + 0x67], r9b
je 0x140325dcb
lea eax, [r9 + 7]
jmp 0x140326838
mov eax, dword [rbx + 0x38]
movzx r12d, word [rbx + 0x18]
mov dword [rsp + 0x74], eax
mov r9d, r12d
and al, 0x20
mov qword [rsp + 0x28], rsi
neg al
mov word [rsp + 0x32], r12w
movzx eax, word [rbx + 0x1a]
mov word [rsp + 0x4a], ax
sbb edx, edx
movzx eax, word [rbx + 0x1c]
and edx, 0xfffffe59
mov word [rsp + 0x4c], ax
add edx, 0x1bf
movzx eax, word [rbx + 0x3e]
mov ecx, edx
mov word [rsp + 0x50], ax
and ecx, 0xffffffc3
movzx eax, word [rbx + 0x3c]
mov word [rsp + 0x4e], ax
mov rax, qword [rbx]
mov qword [rsp + 0xa8], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x38], ax
mov eax, dword [r8 + 0x64]
test al, 4
mov r8d, dword [r10 + 0x44]
cmove ecx, edx
mov dword [rsp + 0x78], r12d
mov rdx, qword [r13 + 8]
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xc0]
call fcn.1403297fc
xor r10d, r10d
mov r15, rax
mov word [rbx + 0x12], r10w
mov rax, qword [rsi + 0x10]
lea ecx, [r10 + 0xa]
movsx rax, word [rax]
mov word [rsp + 0x70], ax
cmp ax, cx
jg 0x140325e84
mov word [rsp + 0x3a], r10w
jmp 0x140325e95
mov rcx, rax
call fcn.1402f87cc
sub ax, 0x21
mov word [rsp + 0x3a], ax
mov edx, 2
mov ecx, 0x100
lea r8d, [rdx + 0xe]
lea r9d, [rdx - 1]
test r15, r15
je 0x14032670c
movzx edi, word [r15 + 0x14]
lea rbp, [r15 + 0x12]
mov eax, dword [r13 + 0x28]
mov word [rsp + 0x48], di
mov dword [rsp + 0x34], r10d
mov dword [rsp + 0x98], eax
mov qword [rsp + 0x88], rbp
cmp di, cx
je 0x140325ee1
test byte [rbp], 0x80
je 0x140325f39
mov rax, qword [rsi + 8]
movzx ecx, r12w
mov qword [rsp + 0x88], rbp
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x140325f1c
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test dword [rax + rcx*8 + 8], 0xf
jne 0x1403266f0
mov edx, 2
jmp 0x140325f2e
cmp r8d, 0xffffffff
je 0x1403266f0
mov qword [rsp + 0x88], rbp
mov r8d, reloc.WS2_32.dll_recv
mov ecx, 0x100
mov rax, qword [rbx + 8]
test qword [r15 + 0x28], rax
jne 0x1403266f0
test word [rbp], cx
je 0x140325f57
cmp di, r8w
je 0x1403266f0
mov rax, qword [rsp + 0x80]
test byte [rax + 0x3c], 8
je 0x140325f72
mov rax, qword [r15]
test byte [rax + 4], r9b
je 0x1403266f0
cmp byte [rsi + 0x62], r10b
je 0x140325f8d
movzx eax, word [rsi + 0x5e]
sub eax, r9d
movzx ecx, r12w
cmp ecx, eax
jne 0x140325f8d
or byte [r13 + 0x2c], dl
jmp 0x140325f91
or byte [r13 + 0x2c], r9b
mov eax, dword [rsp + 0x74]
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x4a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x4e]
mov word [rbx + 0x18], r12w
mov word [rbx + 0x3c], ax
lea r8d, [r9 + rax]
call fcn.140327b34
xor r10d, r10d
test eax, eax
jne 0x1403266fc
movzx ecx, word [rbx + 0x3c]
lea r8d, [r10 + 1]
mov rax, qword [rbx + 0x48]
movzx r12d, di
mov qword [rax + rcx*8], r15
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0xa8]
add dx, r8w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [r15 + 0x28]
and rcx, rax
mov qword [rbx], rcx
and r12w, r8w
je 0x140326159
mov r8, qword [r15]
test dword [r8 + 4], 0x800
je 0x140326063
movzx ecx, dx
xor ebp, ebp
dec ecx
mov r10d, 0x2e
mov dword [rsp + 0x34], r10d
test ecx, ecx
jle 0x14032608b
mov rax, qword [rbx + 0x48]
lea r9d, [r10 - 0x2d]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x140326053
cmp qword [rcx], r8
cmove r10d, ebp
add rax, 8
sub rdx, r9
jne 0x140326044
mov dword [rsp + 0x34], r10d
jmp 0x14032608b
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x140326084
cmp dword [rax], r10d
je 0x140326084
movsxd rcx, dword [rax]
call fcn.1402f87cc
movsx r10d, ax
mov dword [rsp + 0x34], r10d
jmp 0x140326089
mov r10d, dword [rsp + 0x34]
xor ebp, ebp
test byte [rsi + 0x64], 0x80
je 0x14032610a
movzx edi, word [rsp + 0x3a]
mov edx, 0xa
cmp di, dx
jl 0x14032610a
movzx r11d, word [rsp + 0x32]
mov rax, qword [rsi + 0x10]
movzx r9d, word [rax + r11*2]
cmp r10w, dx
jg 0x1403260ba
movzx eax, bp
jmp 0x1403260cc
movsx rcx, r10w
call fcn.1402f87cc
sub ax, 0x21
mov edx, 0xa
sub ax, r10w
sub ax, di
add ax, r9w
add ax, dx
jns 0x140326110
movzx ebp, word [rsp + 0x30]
mov r8d, 2
mov rdi, qword [rsp + 0x40]
cmp bp, r8w
jge 0x1403266bb
test dword [rdi + 0x60], 0x20000
jne 0x1403266bb
bts dword [rbx + 0x38], 0x14
jmp 0x140326110
movzx r11d, word [rsp + 0x32]
or dword [rbx + 0x38], 4
movzx r9d, word [rsp + 0x30]
xor r10d, r10d
lea r8d, [r10 + 1]
mov rcx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
mov eax, 2
test byte [rbx + 0x38], al
je 0x140326342
mov r8, rcx
mov qword [rsp + 0x20], rbx
mov rcx, r14
mov r9, rbp
mov rdx, r13
call fcn.140328ef4
jmp 0x1403265cc
test dil, 0x82
je 0x1403261f2
mov rax, qword [rsi + 8]
mov ebp, 1
mov edx, dword [rbx + 0x38]
movzx r11d, word [rsp + 0x32]
or edx, ebp
movzx r9d, word [rsp + 0x30]
movsx r8d, word [rax + r11*2]
mov dword [rbx + 0x38], edx
cmp r8d, 0xffffffff
je 0x1403261cc
mov ecx, edx
test r8d, r8d
js 0x1403261d5
test r9w, r9w
jne 0x1403261d5
movzx r8d, word [rsi + 0x5e]
mov eax, r8d
sub eax, ebp
cmp r11d, eax
jne 0x1403261d5
test byte [rsi + 0x64], 8
jne 0x1403261cc
cmp r8w, bp
jne 0x1403261c6
xor r8d, r8d
cmp byte [rsi + 0x62], r8b
je 0x1403261c6
lea r8d, [rbp + 1]
cmp di, r8w
je 0x1403261cc
bts ecx, 0x10
jmp 0x1403261d2
mov ecx, edx
bts ecx, 0xc
mov dword [rbx + 0x38], ecx
mov r8, rbp
cmp byte [rsp + 0xe9], r8b
jbe 0x140326121
bts ecx, 0x15
mov dword [rbx + 0x38], ecx
jmp 0x140326121
bt di, 8
mov eax, dword [rbx + 0x38]
jae 0x140326213
movzx r9d, word [rsp + 0x30]
or eax, 8
movzx r11d, word [rsp + 0x32]
mov dword [rbx + 0x38], eax
jmp 0x140326121
mov r9d, dword [rsp + 0x78]
mov r8, rsi
mov qword [rsp + 0x20], r15
test dil, 0x24
je 0x1403262c9
mov rcx, qword [rsp + 0x58]
or eax, 0x22
mov dword [rbx + 0x38], eax
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x44]
call fcn.140329658
mov word [rbx + 0x1a], ax
xor r10d, r10d
mov eax, 0x100
mov qword [rsp + 0x60], r10
mov rcx, r15
mov qword [rsp + 0x68], rcx
test word [rbp], ax
je 0x140326328
movzx r8d, word [rbx + 0x3c]
lea rbp, [r15 + 0x38]
mov rdi, qword [rsp + 0x40]
inc r8d
mov rcx, rdi
mov qword [rsp + 0x60], rbp
mov rdx, rbx
call fcn.140327b34
xor r10d, r10d
test eax, eax
jne 0x140326701
movzx ecx, word [rbx + 0x3c]
lea r8d, [r10 + 1]
mov rax, qword [rbx + 0x48]
movzx r9d, word [rsp + 0x30]
movzx r11d, word [rsp + 0x32]
mov qword [rax + rcx*8], rbp
lea eax, [r10 + 0x10]
add word [rbx + 0x3c], r8w
mov rcx, r15
or dword [rbx + 0x38], eax
mov word [rbx + 0x1c], r8w
jmp 0x14032612b
mov r14, qword [rsp + 0x58]
or eax, 0x12
mov dword [rbx + 0x38], eax
mov rcx, r14
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x44]
call fcn.140329658
movzx r9d, word [rsp + 0x30]
xor r10d, r10d
test byte [rbx + 0x38], 0x20
mov rbp, r15
movzx r11d, word [rsp + 0x32]
mov word [rbx + 0x1c], ax
lea r8d, [r10 + 1]
mov qword [rsp + 0x60], r15
je 0x140326323
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rcx*8 - 0x10]
mov qword [rsp + 0x68], rcx
jmp 0x140326130
mov rcx, r10
jmp 0x140326319
movzx r9d, word [rsp + 0x30]
mov rbp, r10
movzx r11d, word [rsp + 0x32]
mov r8d, 1
jmp 0x14032612b
movzx eax, word [rbx + 0x18]
add ax, r8w
movzx edi, ax
mov word [rbx + 0x18], di
movzx edx, word [r15 + 0x10]
mov dword [rsp + 0x7c], edi
test dx, dx
jg 0x140326380
mov rax, qword [rsi + 8]
movzx ecx, r11w
cmp word [rax + rcx*2], r10w
jl 0x140326380
mov r15d, dword [rsp + 0x34]
sub dx, r15w
add word [rbx + 0x16], dx
jmp 0x1403265d1
mov dword [rsp + 0x94], r10d
mov dword [rsp + 0x54], r10d
test r9w, r9w
jne 0x14032659d
cmp dword [rsi + 0x68], r10d
je 0x14032659d
cmp edi, dword [rsi + 0x6c]
jg 0x14032659d
test r12w, r12w
je 0x1403263c0
mov rax, qword [r15]
test dword [rax + 4], 0x800
jne 0x14032659d
mov rax, qword [rsp + 0x40]
test dword [rax + 0x60], 0x800
jne 0x14032659d
mov rax, qword [r15]
mov ecx, 0x182
test word [rsp + 0x48], cx
je 0x140326403
mov r8, qword [rax + 0x18]
lea r9, [rsp + 0x54]
mov rdx, r13
mov rcx, r14
call fcn.140324fc0
mov ebp, dword [rsp + 0x54]
mov ecx, eax
xor r10d, r10d
jmp 0x1403264bb
mov r15, qword [rax + 0x20]
mov rax, qword [r13 + 0x10]
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx + 0x10]
movzx ecx, word [rax]
call fcn.1402f8944
mov rbx, qword [rsp + 0xa0]
xor r10d, r10d
mov rbp, qword [rsp + 0x58]
mov r12, rax
mov eax, dword [r13 + 0x28]
mov ecx, r10d
mov dword [rsp + 0x90], eax
lea r13, [r15 + 8]
mov r14d, r10d
mov esi, r10d
mov edi, r12d
cmp esi, dword [r15]
jge 0x140326488
mov r8, qword [r13]
lea r9, [rsp + 0x54]
mov rdx, rbx
mov dword [rsp + 0x54], r12d
mov rcx, rbp
mov edi, r12d
call fcn.140324fc0
add r14d, dword [rsp + 0x54]
mov ecx, eax
mov eax, dword [rsp + 0x90]
xor r10d, r10d
inc esi
mov dword [rbx + 0x28], eax
add r13, 0x20
test ecx, ecx
je 0x140326449
mov rbx, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x94]
test ecx, ecx
jne 0x1403264a7
mov eax, r14d
mov ebp, edi
cmp rax, r12
cmovle ebp, r14d
mov rsi, qword [rsp + 0xb8]
mov edi, dword [rsp + 0x7c]
mov r13, qword [rsp + 0xa0]
cmp ecx, 0xc
mov r14d, r10d
cmovne r14d, ecx
test r14d, r14d
jne 0x1403266fc
test ebp, ebp
je 0x14032659d
mov eax, ebp
lea r8d, [r14 + 0x28]
movzx ecx, r8w
cmp rax, 8
jae 0x140326504
lea r8d, [r14 + 2]
cmp rax, r8
jae 0x1403264f5
movzx ecx, r10w
jmp 0x140326541
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1403264f5
jmp 0x14032652f
mov edx, 0xff
jmp 0x140326513
add cx, r8w
shr rax, 4
cmp rax, rdx
ja 0x14032650b
cmp rax, 0xf
jbe 0x14032652f
mov edx, 0xa
add cx, dx
shr rax, 1
cmp rax, 0xf
ja 0x140326523
and eax, 7
lea rdx, [0x14047d5c0]
sub cx, 0xa
add cx, word [rdx + rax*2]
mov eax, 1
mov word [rbx + 0x16], cx
cmp di, ax
jne 0x14032657f
mov rax, qword [rsi + 0x10]
movsx edx, cx
add edx, 0xa
movsx ecx, word [rax]
cmp edx, ecx
jle 0x14032657f
mov rax, qword [rsp + 0x88]
mov ecx, 0x4000
or word [rax], cx
mov ecx, 0x2000
test word [rax], cx
je 0x14032657f
or byte [r13 + 0x2d], 4
movzx eax, word [rbx + 0x16]
cmp ax, word [rsp + 0x38]
mov r15d, dword [rsp + 0x34]
cmovg ax, word [rsp + 0x38]
sub ax, r15w
mov word [rbx + 0x16], ax
jmp 0x1403265d1
mov rax, qword [rsi + 0x10]
movzx ecx, di
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
mov ecx, 0x100
add dx, word [rbx + 0x16]
movzx eax, dx
mov word [rbx + 0x16], dx
test word [rsp + 0x48], cx
je 0x1403265cc
add ax, 0xa
mov word [rbx + 0x16], ax
mov r15d, dword [rsp + 0x34]
movsx eax, word [rsi + 0x5c]
mov r12, qword [rsp + 0x80]
movzx edi, word [rbx + 0x16]
imul eax, eax, 0xf
mov rcx, qword [r12 + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
movzx ecx, word [rsp + 0x3a]
idiv r8d
lea edx, [rdi + rax]
inc dx
call fcn.1402f882c
test dword [rbx + 0x38], 0x140
jne 0x14032661a
mov edx, reloc.WS2_32.dll_recv
movzx ecx, ax
add edx, edi
call fcn.1402f882c
movzx ebp, word [rsp + 0x30]
add ax, r15w
movzx r8d, word [rsp + 0x70]
add ax, bp
mov word [rbx + 0x14], ax
mov rdx, rbx
lea eax, [r15 + rdi]
add ax, bp
mov word [rbx + 0x16], ax
mov rcx, qword [r13 + 8]
call fcn.140327980
mov rdx, rbx
mov rcx, r13
call fcn.1403277a8
mov edx, dword [rbx + 0x38]
mov r8d, 2
movzx ecx, word [rsp + 0x38]
test r8b, dl
mov r14d, eax
cmove cx, di
lea eax, [r8 + 0xe]
mov word [rbx + 0x16], cx
test al, dl
jne 0x1403266a2
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x1403266a2
cmp cx, word [rsi + 0x5e]
jb 0x140326690
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, r8b
je 0x1403266a2
lea r9d, [r15 + rbp]
mov r8, rsi
mov rdx, r12
mov rcx, r13
call fcn.140325d3c
movzx ecx, word [rsp + 0x38]
mov eax, dword [rsp + 0x98]
mov rdi, qword [rsp + 0x40]
mov word [rbx + 0x16], cx
mov dword [r13 + 0x28], eax
movzx r12d, word [rsp + 0x32]
lea rcx, [rsp + 0xc0]
call fcn.1403298f0
xor r10d, r10d
mov r15, rax
mov ecx, 0x100
lea edx, [r10 + 2]
lea r9d, [r10 + 1]
lea r8d, [r10 + 0x10]
test r14d, r14d
je 0x140325ea7
jmp 0x14032670c
movzx ebp, word [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
jmp 0x1403266c1
mov rdi, qword [rsp + 0x40]
movzx ebp, word [rsp + 0x30]
mov r9d, 1
mov rax, qword [rsp + 0xa8]
movzx r15d, word [rsp + 0x32]
movzx r12d, word [rsp + 0x38]
movzx r8d, word [rsp + 0x4e]
mov ecx, dword [rsp + 0x74]
mov qword [rbx], rax
movzx eax, word [rsp + 0x4a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x18], r15w
mov word [rbx + 0x3e], ax
mov dword [rbx + 0x38], ecx
mov word [rbx + 0x16], r12w
mov word [rbx + 0x3c], r8w
cmp r15w, ax
jne 0x140326835
movzx ecx, word [rsi + 0x5e]
lea eax, [r15 + 1]
cmp eax, ecx
jae 0x140326835
cmp r15w, r8w
jne 0x140326835
test byte [rsi + 0x64], 0x40
jne 0x140326835
test byte [rsi + 0x64], 0x80
je 0x140326835
mov eax, 0x4000
test dword [rdi + 0x60], eax
jne 0x140326835
mov rax, qword [rsi + 0x10]
cmp word [rax + r15*2 + 2], 0x2a
jl 0x140326835
mov rcx, qword [rsp + 0x40]
add r8d, r9d
mov rdx, rbx
call fcn.140327b34
xor r8d, r8d
mov r14d, eax
test eax, eax
jne 0x140326835
movzx ecx, word [rbx + 0x3c]
lea edx, [rax + 1]
add word [rbx + 0x18], dx
add word [rbx + 0x3e], dx
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], r8
mov r8, rsi
add word [rbx + 0x3c], dx
mov rcx, r13
bts dword [rbx + 0x38], 0xf
mov r9, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x80]
movzx r10d, word [r9 + r15*2]
sub r10w, word [r9 + r15*2 + 2]
sub word [rbx + 0x16], r10w
lea r9d, [r10 + rbp]
add r9w, 5
call fcn.140325d3c
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0x74]
mov dword [rbx + 0x38], eax
mov word [rbx + 0x16], r12w
mov word [rbx + 0x18], r15w
mov eax, r14d
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.140330e30
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret