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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov esi, r8d
mov rdi, rdx
mov r14, rcx
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x4c], r9d
test r9d, r9d
je 0x14013ad93
mov rcx, r14
mov rdx, rdi
mov r8d, esi
mov r9d, 1
call fcn.1401354d0
mov ebx, eax
mov eax, esi
sub eax, ebx
mov dword [rsp + 0x28], eax
je 0x14013b4d6
lea rax, [rsp + 0x8c]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 0
mov dword [rsp + 0x88], 0
cmp dword [rsp + 0x4c], 1
jne 0x14013adfa
movsxd r12, dword [r14 + 0xf4]
cmp r12, 0x10
jg 0x14013adc4
mov dword [rsp + 0x80], reloc.WS2_32.dll_recv
mov r12d, reloc.WS2_32.dll_recv
lea rcx, [rsp + 0x8c]
jmp 0x14013adf0
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.14029fd30
mov rcx, r14
mov rdx, rdi
mov r8d, esi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x14013b520
mov rcx, r12
call fcn.1400ee040
test rax, rax
je 0x14013ade3
mov rcx, rax
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x80], r12d
jmp 0x14013adf0
mov r12d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x78]
movsxd r8, r12d
xor edx, edx
call fcn.1402a4b90
mov rax, qword [r14 + 0xd0]
mov eax, dword [rax + 8]
mov qword [rsp + 0x58], rax
movsxd rax, esi
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x2c], ebx
mov dword [rsp + 0x38], esi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x30], r14
jmp 0x14013ae54
mov byte [rcx + r9 - 1], 0
dec dword [rsp + 0x84]
mov r12d, edx
sub r12d, dword [rsp + 0x88]
mov dword [rsp + 0x88], edx
sub dword [rsp + 0x28], r12d
mov dword [rsp + 0x2c], 0
add ebx, r12d
cmp dword [rsp + 0x4c], 1
mov dword [rsp + 0x3c], ebx
jne 0x14013b0c0
cmp dword [rsp + 0x58], 0
jle 0x14013b2d5
movsxd r15, dword [rsp + 0x3c]
mov rax, qword [rsp + 0x40]
lea rax, [rax + r15*2]
mov qword [rsp + 0x50], rax
xor r12d, r12d
jmp 0x14013aea3
inc r12
cmp r12, qword [rsp + 0x58]
mov r14, qword [rsp + 0x30]
je 0x14013b2d5
mov rax, qword [r14 + 0xe0]
movzx esi, byte [rax + r12]
cmp esi, 0xff
je 0x14013ae90
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0xd0]
mov edx, r12d
call fcn.140150ee0
movzx edx, word [rax + 8]
test dl, 0x11
je 0x14013aee0
xor ecx, ecx
test dx, dx
jns 0x14013aef0
jmp 0x14013af10
test dl, 2
jne 0x14013af00
mov rcx, qword [rax + 0x18]
test dx, dx
js 0x14013af10
nop
movsx eax, dx
sar eax, 5
cmp esi, 0xfe
je 0x14013af1b
jmp 0x14013af57
mov rcx, rax
add rcx, 0xa
test dx, dx
jns 0x14013aef0
nop dword [rax]
mov eax, dword [rax + 0xc]
cmp esi, 0xfe
jne 0x14013af57
lea esi, [rax - 1]
cmp eax, 2
jl 0x14013af57
movsxd rdx, eax
movzx edx, word [rcx + rdx*2 - 2]
and edx, 0xfc00
movzx edx, dx
cmp edx, 0xdc00
jne 0x14013af57
mov edx, eax
movzx edx, word [rcx + rdx*2 - 4]
and edx, 0xfc00
lea r8d, [rax - 2]
cmp edx, 0xd800
cmove esi, r8d
mov r8d, dword [rsp + 0x2c]
cmp esi, r8d
cmovl r8d, esi
mov edx, eax
sub edx, r8d
cmp edx, dword [rsp + 0x28]
jg 0x14013ae90
mov r8d, dword [rsp + 0x2c]
cmp esi, r8d
cmovge esi, r8d
movsxd r11, eax
movsxd r9, esi
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0x60], r11
sub r10, r11
inc eax
mov r11, qword [rsp + 0x50]
sub r11, r9
sub r11, r9
nop
mov edi, dword [rsp + 0x88]
add edi, edx
mov esi, dword [rsp + 0x80]
cmp edi, esi
mov r8d, 0
cmovl esi, r8d
sub edi, esi
mov rsi, qword [rsp + 0x78]
movsxd rbx, edi
cmp byte [rsi + rbx], 0
je 0x14013aff0
sub r9, 1
jb 0x14013ae90
lea r8d, [rdx + 1]
add r11, 2
cmp edx, dword [rsp + 0x28]
mov edx, r8d
jne 0x14013afa0
jmp 0x14013ae90
mov r13, r15
sub r13, r9
mov r8, qword [rsp + 0x40]
lea r14, [r8 + r13*2]
xor edi, edi
mov ebp, eax
nop word cs:[rax + rax]
movzx r8d, word [r11 + rdi]
cmp r8w, word [rcx + rdi]
jne 0x14013afcc
dec ebp
add rdi, 2
cmp ebp, 1
jg 0x14013b010
test r13, r13
jle 0x14013b059
movzx r8d, word [r14 - 2]
and r8d, 0xfc00
cmp r8d, 0xd800
jne 0x14013b059
movzx r8d, word [r14]
and r8d, 0xfc00
cmp r8d, 0xdc00
je 0x14013afcc
cmp r13, r10
jge 0x14013b097
mov r8, qword [rsp + 0x60]
movzx r8d, word [r14 + r8*2 - 2]
and r8d, 0xfc00
cmp r8d, 0xd800
jne 0x14013b097
mov r8, qword [rsp + 0x60]
movzx r8d, word [r14 + r8*2]
and r8d, 0xfc00
cmp r8d, 0xdc00
je 0x14013afcc
cmp edx, dword [rsp + 0x28]
je 0x14013b4bb
mov byte [rsi + rbx], 1
inc dword [rsp + 0x84]
jmp 0x14013afcc
cmp dword [rsp + 0x58], 0
jle 0x14013b2bf
movsxd rax, ebx
mov qword [rsp + 0x60], rax
lea rax, [rdi + rax*2]
mov qword [rsp + 0x70], rax
xor r13d, r13d
xor esi, esi
xor r12d, r12d
jmp 0x14013b10e
mov r12d, edx
mov esi, r8d
mov r14, qword [rsp + 0x30]
nop word cs:[rax + rax]
inc r13
cmp r13, qword [rsp + 0x58]
je 0x14013b2b0
mov rcx, qword [r14 + 0xd0]
mov rax, qword [r14 + 0xe0]
movzx ebx, byte [rax + r13]
mov edx, r13d
call fcn.140150ee0
movzx edx, word [rax + 8]
test dl, 0x11
je 0x14013b140
xor ecx, ecx
test dx, dx
jns 0x14013b150
jmp 0x14013b170
test dl, 2
jne 0x14013b15c
mov rcx, qword [rax + 0x18]
test dx, dx
js 0x14013b170
nop
movsx edi, dx
sar edi, 5
test edi, edi
jne 0x14013b177
jmp 0x14013b100
mov rcx, rax
add rcx, 0xa
test dx, dx
jns 0x14013b150
nop dword [rax + rax]
mov edi, dword [rax + 0xc]
test edi, edi
je 0x14013b100
cmp bl, 0xfe
cmovae ebx, edi
mov eax, dword [rsp + 0x2c]
cmp ebx, eax
cmovl eax, ebx
mov edx, edi
sub edx, eax
cmp edx, dword [rsp + 0x28]
jg 0x14013b100
cmp eax, esi
jl 0x14013b100
movsxd r9, edi
mov eax, dword [rsp + 0x2c]
cmp ebx, eax
cmovge ebx, eax
movsxd r8, ebx
mov dword [rsp + 0x50], esi
movsxd r10, esi
mov r11, qword [rsp + 0x68]
sub r11, r9
inc edi
mov rbx, qword [rsp + 0x70]
sub rbx, r8
sub rbx, r8
nop word [rax + rax]
cmp r8, r10
jg 0x14013b1de
cmp edx, r12d
jle 0x14013b280
mov r14, qword [rsp + 0x60]
sub r14, r8
mov rax, qword [rsp + 0x40]
lea rsi, [rax + r14*2]
xor ebp, ebp
mov eax, edi
nop word cs:[rax + rax]
movzx r15d, word [rbx + rbp]
cmp r15w, word [rcx + rbp]
jne 0x14013b280
dec eax
add rbp, 2
cmp eax, 1
jg 0x14013b200
test r14, r14
jle 0x14013b240
movzx eax, word [rsi - 2]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x14013b240
movzx eax, word [rsi]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x14013b280
nop dword [rax + rax]
cmp r14, r11
jge 0x14013b0e6
movzx eax, word [rsi + r9*2 - 2]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x14013b0e6
movzx eax, word [rsi + r9*2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x14013b0e6
nop word cs:[rax + rax]
cmp edx, dword [rsp + 0x28]
jge 0x14013b29c
lea rax, [r8 - 1]
inc edx
add rbx, 2
cmp r8, r10
mov r8, rax
jg 0x14013b1d0
mov r14, qword [rsp + 0x30]
mov esi, dword [rsp + 0x50]
jmp 0x14013b100
test esi, esi
setne al
test r12d, r12d
je 0x14013b2cd
jmp 0x14013b3c0
xor r12d, r12d
xor eax, eax
test r12d, r12d
jne 0x14013b3c0
test al, al
jne 0x14013b3c0
mov ecx, dword [rsp + 0x84]
cmp dword [rsp + 0x2c], 0
mov ebx, dword [rsp + 0x3c]
jne 0x14013b370
test ebx, ebx
je 0x14013b370
movsxd rax, ebx
mov rdi, qword [rsp + 0x40]
lea rax, [rdi + rax*2]
test ecx, ecx
mov esi, dword [rsp + 0x38]
je 0x14013b486
movzx edx, word [rax]
cmp dword [rsp + 0x28], 2
jl 0x14013b418
mov ecx, edx
and ecx, 0xfc00
movzx ecx, cx
cmp ecx, 0xd800
jne 0x14013b418
movzx eax, word [rax + 2]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x14013b418
shl edx, 0xa
add edx, eax
add edx, 0xfca02400
mov rcx, r14
call fcn.140135250
mov r12d, 2
test al, al
jne 0x14013b42e
jmp 0x14013b37d
test ecx, ecx
mov rdi, qword [rsp + 0x40]
je 0x14013b506
movsxd rax, dword [rsp + 0x88]
movsxd r12, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x78]
mov r8, rax
inc r8
mov edx, eax
nop word [rax + rax]
cmp r8, r12
jge 0x14013b3e5
lea r9, [r8 + 1]
inc edx
cmp byte [rcx + r8], 0
mov r8, r9
je 0x14013b3a0
jmp 0x14013ae25
mov dword [rsp + 0x2c], 0
sub dword [rsp + 0x28], r12d
mov esi, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x3c]
jne 0x14013b4b3
jmp 0x14013b4bf
mov rdx, 0xffffffffffffffff
nop dword [rax]
cmp byte [rcx + rdx + 1], 0
lea rdx, [rdx + 1]
je 0x14013b3f0
mov byte [rcx + rdx], 0
dec dword [rsp + 0x84]
sub r12d, eax
mov dword [rsp + 0x88], edx
add r12d, edx
jmp 0x14013ae44
mov rcx, r14
call fcn.140135250
mov r12d, 1
test al, al
je 0x14013b37d
sub dword [rsp + 0x28], r12d
je 0x14013b4bf
mov eax, dword [rsp + 0x88]
add eax, r12d
mov ecx, dword [rsp + 0x80]
cmp eax, ecx
mov edx, 0
cmovl ecx, edx
sub eax, ecx
mov rcx, qword [rsp + 0x78]
movsxd rdx, eax
cmp byte [rcx + rdx], 0
je 0x14013b46f
mov byte [rcx + rdx], 0
dec dword [rsp + 0x84]
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x2c], 0
add ebx, r12d
jmp 0x14013ae54
mov rcx, r14
mov rdx, rax
mov esi, dword [rsp + 0x28]
mov r8d, esi
mov r9d, 1
call fcn.1401354d0
mov r12d, eax
sub esi, eax
mov dword [rsp + 0x28], esi
je 0x14013b50a
test r12d, r12d
je 0x14013b50a
mov dword [rsp + 0x2c], r12d
add ebx, r12d
jmp 0x14013ae54
mov esi, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x8c]
cmp rcx, rax
je 0x14013b4d6
call fcn.1400ee120
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x14013b500
mov eax, esi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14029fd30
int3
mov esi, ebx
jmp 0x14013b4bf
add r12d, ebx
mov esi, r12d
jmp 0x14013b4bf
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r15d, r8d
mov rdi, rdx
mov rbx, rcx
mov rax, qword [rcx + 0xd0]
mov eax, dword [rax + 8]
test eax, eax
jle 0x14013b819
mov r12d, eax
xor esi, esi
mov ebp, r15d
mov dword [rsp + 0x20], r15d
jmp 0x14013b577
mov eax, dword [rsp + 0x24]
sub r14d, eax
mov esi, r14d
add ebp, eax
mov r15d, dword [rsp + 0x20]
je 0x14013b8b1
mov rcx, qword [rbx + 0xc8]
movsxd rax, esi
lea rdx, [rdi + rax*2]
mov r8d, ebp
xor r9d, r9d
call fcn.1401354d0
sub ebp, eax
je 0x14013b8b1
mov r14d, eax
add r14d, esi
movsxd rax, r14d
lea r13, [rdi + rax*2]
movzx edx, word [rdi + rax*2]
cmp ebp, 2
jl 0x14013b600
mov eax, edx
and eax, 0xfc00
movzx eax, ax
cmp eax, 0xd800
jne 0x14013b600
movzx eax, word [r13 + 2]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x14013b600
shl edx, 0xa
add edx, eax
add edx, 0xfca02400
mov rcx, rbx
call fcn.140135250
mov ecx, 0xfffffffe
test al, al
je 0x14013b615
jmp 0x14013b8ae
mov rcx, rbx
call fcn.140135250
mov ecx, 0xffffffff
test al, al
jne 0x14013b8ae
mov dword [rsp + 0x24], ecx
mov esi, r15d
sub esi, r14d
xor r15d, r15d
test r14d, r14d
jg 0x14013b63c
jmp 0x14013b74c
inc r15
cmp r15, r12
je 0x14013b560
mov rax, qword [rbx + 0xe0]
cmp byte [rax + r15], 0xff
je 0x14013b630
mov rcx, qword [rbx + 0xd0]
mov edx, r15d
call fcn.140150ee0
movzx edx, word [rax + 8]
test dl, 0x11
je 0x14013b680
xor ecx, ecx
test dx, dx
jns 0x14013b6a0
mov eax, dword [rax + 0xc]
cmp eax, ebp
jg 0x14013b630
jmp 0x14013b6aa
test dl, 2
jne 0x14013b690
mov rcx, qword [rax + 0x18]
test dx, dx
js 0x14013b669
jmp 0x14013b6a0
mov rcx, rax
add rcx, 0xa
test dx, dx
js 0x14013b669
nop dword [rax]
movsx eax, dx
sar eax, 5
cmp eax, ebp
jg 0x14013b630
lea edx, [rax + 1]
xor r8d, r8d
movzx r9d, word [r13 + r8]
cmp r9w, word [rcx + r8]
jne 0x14013b630
dec edx
add r8, 2
cmp edx, 1
jg 0x14013b6b0
movzx ecx, word [r13 - 2]
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x14013b6f6
movzx ecx, word [r13]
and ecx, 0xfc00
cmp ecx, 0xdc00
je 0x14013b630
cmp eax, esi
jge 0x14013b8ae
cdqe
movzx ecx, word [r13 + rax*2 - 2]
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x14013b8ae
movzx eax, word [r13 + rax*2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x14013b630
jmp 0x14013b8ae
inc r15
cmp r15, r12
je 0x14013b560
mov rax, qword [rbx + 0xe0]
cmp byte [rax + r15], 0xff
je 0x14013b740
mov rcx, qword [rbx + 0xd0]
mov edx, r15d
call fcn.140150ee0
movzx edx, word [rax + 8]
test dl, 0x11
je 0x14013b790
xor ecx, ecx
test dx, dx
jns 0x14013b7b0
mov eax, dword [rax + 0xc]
cmp eax, ebp
jg 0x14013b740
jmp 0x14013b7ba
test dl, 2
jne 0x14013b7a0
mov rcx, qword [rax + 0x18]
test dx, dx
js 0x14013b779
jmp 0x14013b7b0
mov rcx, rax
add rcx, 0xa
test dx, dx
js 0x14013b779
nop dword [rax]
movsx eax, dx
sar eax, 5
cmp eax, ebp
jg 0x14013b740
lea edx, [rax + 1]
xor r8d, r8d
movzx r9d, word [r13 + r8]
cmp r9w, word [rcx + r8]
jne 0x14013b740
dec edx
add r8, 2
cmp edx, 1
jg 0x14013b7c0
cmp eax, esi
jge 0x14013b8ae
cdqe
movzx ecx, word [r13 + rax*2 - 2]
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x14013b8ae
movzx eax, word [r13 + rax*2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x14013b740
jmp 0x14013b8ae
xor esi, esi
mov ebp, r15d
jmp 0x14013b83b
mov rcx, rbx
call fcn.140135250
mov ecx, 0xffffffff
test al, al
jne 0x14013b8ae
sub r14d, ecx
mov esi, r14d
add ebp, ecx
je 0x14013b8b1
mov rcx, qword [rbx + 0xc8]
movsxd rax, esi
lea rdx, [rdi + rax*2]
mov r8d, ebp
xor r9d, r9d
call fcn.1401354d0
sub ebp, eax
je 0x14013b8b1
mov r14d, eax
add r14d, esi
movsxd rax, r14d
movzx edx, word [rdi + rax*2]
cmp ebp, 2
jl 0x14013b820
mov ecx, edx
and ecx, 0xfc00
movzx ecx, cx
cmp ecx, 0xd800
jne 0x14013b820
movzx eax, word [rdi + rax*2 + 2]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x14013b820
shl edx, 0xa
add edx, eax
add edx, 0xfca02400
mov rcx, rbx
call fcn.140135250
mov ecx, 0xfffffffe
test al, al
je 0x14013b831
mov r15d, r14d
mov eax, r15d
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret