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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov rsi, rcx
mov rax, qword [0x14040b018]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, qword [rcx + 0x128]
test rbx, rbx
je 0x14025e165
mov dword [rsp + 0x30], 0
cmp byte [rbx + 0x40], 0
je 0x14025e0b2
cmp byte [rbx + 0x3f], 0
jne 0x14025e0a3
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x70]
xor edx, edx
mov r8d, 1
mov r9d, 9
call qword [case.0x1403339d6.0]
xor eax, eax
mov byte [rbx + 0x40], al
mov dword [rbx + 0x7c], 0
mov byte [rbx + 0x43], al
movzx edx, word [rbx + 0x3c]
test dx, dx
js 0x14025e0e7
cmp byte [rbx + 0x3f], 0
jne 0x14025e0e1
add edx, 3
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x70]
mov r8d, 1
mov r9d, 5
call qword [case.0x1403339d6.0]
mov word [rbx + 0x3c], 0xffff
mov rbx, qword [rsi + 0x128]
mov ebp, 1
lea r14, [rsp + 0x30]
mov rcx, rbx
mov rdx, r14
xor r8d, r8d
mov r9d, ebp
call fcn.140256f70
inc ebp
cmp eax, 0xffffffff
je 0x14025e0f8
mov edi, eax
mov eax, dword [rsp + 0x30]
or eax, edi
je 0x14025e17d
inc dword [rsi + 0x84]
mov rax, qword [rsi + 0x70]
test rax, rax
je 0x14025e136
mov dword [rax + 0x18], 1
mov rax, qword [rax + 0x40]
jmp 0x14025e124
mov rcx, qword [rsi + 0x120]
xor edx, edx
call fcn.14025bed0
cmp byte [rsi + 0x1b], 0
je 0x14025e17d
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
xor edx, edx
xor r8d, r8d
call qword [case.0x1403339d6.0]
jmp 0x14025e17d
xor edi, edi
cmp byte [rsi + 0x15], 0
je 0x14025e1ba
mov rbx, qword [rsi + 0x128]
test rbx, rbx
jne 0x14025e070
cmp byte [rsi + 0x10], 0
je 0x14025e208
mov ebx, edi
test edi, edi
je 0x14025e298
mov rcx, rsi
call fcn.140259c50
jmp 0x14025e2a2
mov rax, qword [rsi + 0xe8]
mov rcx, qword [rsi + 0xf0]
call qword [case.0x1403339d6.0]
test eax, eax
je 0x14025e266
movzx eax, byte [rsi + 0x16]
cmp eax, 5
je 0x14025e1cb
test eax, eax
jne 0x14025e2c0
cmp byte [rsi + 0x11], 0
jne 0x14025e1f7
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov edx, 1
call qword [case.0x1403339d6.0]
cmp eax, 5
je 0x14025e19e
test eax, eax
jne 0x14025e793
mov al, byte [rsi + 0x16]
cmp al, 5
je 0x14025e54e
mov byte [rsi + 0x16], 1
jmp 0x14025e2c8
cmp byte [rsi + 0x15], 0
jne 0x14025e187
test edi, edi
jne 0x14025e187
mov rax, qword [rsi + 0x128]
test rax, rax
je 0x14025e234
cmp word [rax + 0x3c], 0
js 0x14025e234
mov eax, dword [rax + 0x5c]
test eax, eax
jne 0x14025e287
mov rcx, qword [rsi + 0x48]
cmp qword [rcx], 0
je 0x14025e262
lea rdx, [rsp + 0x30]
mov qword [rdx], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [case.0x1403339d6.0]
test eax, eax
je 0x14025e270
mov ebx, eax
jmp 0x14025e191
xor eax, eax
jmp 0x14025e295
mov ebx, 5
jmp 0x14025e191
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsi + 0xc8]
add rax, rcx
dec rax
cqo
idiv rcx
cmp eax, dword [rsi + 0xbc]
jbe 0x14025e295
mov dword [rsi + 0xbc], eax
mov dword [rsi + 0x20], eax
mov al, 1
mov byte [rsi + 0x15], al
mov byte [rsi + 0x1c], al
xor ebx, ebx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140334bf0
mov eax, ebx
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
cmp al, 1
ja 0x14025e54e
mov r14, qword [rsi]
mov dword [rsp + 0x2c], 1
mov rax, qword [rsi + 0x50]
mov r12, qword [rax]
test r12, r12
jne 0x14025e310
mov rdx, qword [rsi + 0xe0]
mov rax, qword [r14 + 0x38]
lea r9, [rsp + 0x2c]
mov rcx, r14
xor r8d, r8d
call qword [case.0x1403339d6.0]
mov ebx, eax
test eax, eax
jne 0x14025e3ac
cmp dword [rsp + 0x2c], 0
je 0x14025e3ac
lea r15, [rsp + 0x28]
mov dword [r15], 0
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
mov rdx, r15
call qword [case.0x1403339d6.0]
mov ebx, eax
xor ebp, ebp
or eax, dword [r15]
jne 0x14025e4c4
mov rax, qword [rsi + 0x128]
test rax, rax
je 0x14025e357
cmp word [rax + 0x3c], 0
js 0x14025e357
mov eax, dword [rax + 0x5c]
test eax, eax
jne 0x14025e399
mov rcx, qword [rsi + 0x48]
cmp qword [rcx], 0
je 0x14025e3b9
lea rdx, [rsp + 0x30]
mov qword [rdx], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [case.0x1403339d6.0]
test eax, eax
jne 0x14025e25b
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsi + 0xc8]
add rax, rcx
dec rax
cqo
idiv rcx
cmp eax, dword [rsi + 0xbc]
jbe 0x14025e3bb
mov dword [rsi + 0xbc], eax
jmp 0x14025e45f
test ebx, ebx
jne 0x14025e191
jmp 0x14025e703
xor eax, eax
test r12, r12
jne 0x14025e45f
test eax, eax
jne 0x14025e45f
mov rax, qword [0x140467b28]
test rax, rax
je 0x14025e3de
call qword [case.0x1403339d6.0]
movzx eax, byte [rsi + 0x16]
cmp eax, 5
ja 0x14025e403
mov ecx, 0x23
bt ecx, eax
jae 0x14025e403
cmp byte [rsi + 0x11], 0
je 0x14025e50d
cmp al, 5
je 0x14025e403
mov byte [rsi + 0x16], 2
mov rax, qword [r14 + 0x30]
test rax, rax
je 0x14025e41f
mov rdx, qword [rsi + 0xe0]
mov rcx, r14
xor r8d, r8d
call qword [case.0x1403339d6.0]
cmp byte [rsi + 8], 0
jne 0x14025e52b
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x14025e454
cmp byte [rsi + 0x11], 0
jne 0x14025e44a
mov rax, qword [rax + 0x40]
mov edx, 1
call qword [case.0x1403339d6.0]
cmp byte [rsi + 0x16], 5
je 0x14025e454
mov byte [rsi + 0x16], 1
mov al, byte [rsi + 0x10]
mov byte [rsi + 0x17], al
jmp 0x14025e52b
test r12, r12
je 0x14025e4ce
lea rdx, [rsp + 0x30]
mov byte [rdx], 0
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
xor r14d, r14d
mov r8d, 1
xor r9d, r9d
call qword [case.0x1403339d6.0]
mov ebx, eax
cmp eax, 0x20a
cmove ebx, r14d
test r12, r12
jne 0x14025e4b9
mov r14, qword [rsi + 0x50]
mov rax, qword [r14]
test rax, rax
je 0x14025e4b9
mov rax, qword [rax + 8]
mov rcx, r14
call qword [case.0x1403339d6.0]
mov qword [r14], 0
xor ebp, ebp
cmp byte [rsp + 0x30], 0
setne bpl
test ebx, ebx
jne 0x14025e191
jmp 0x14025e546
lea rcx, [rsp + 0x30]
mov dword [rcx], 0x801
mov r8, qword [rsi + 0x50]
mov rdx, qword [rsi + 0xe0]
mov rax, qword [r14 + 0x28]
mov qword [rsp + 0x20], rcx
mov rcx, r14
mov r9d, 0x801
call qword [case.0x1403339d6.0]
cmp eax, 0xe
je 0x14025e541
mov ebx, eax
test eax, eax
je 0x14025e464
jmp 0x14025e4c4
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov edx, 2
call qword [case.0x1403339d6.0]
test eax, eax
je 0x14025e8c1
mov rax, qword [0x140467b30]
xor ebp, ebp
test rax, rax
je 0x14025e546
call qword [case.0x1403339d6.0]
jmp 0x14025e546
mov ebp, 1
test ebp, ebp
je 0x14025e703
mov ebx, 0x308
cmp byte [rsi + 0x12], 0
jne 0x14025e191
movzx eax, byte [rsi + 0x16]
cmp eax, 4
jb 0x14025e56b
cmp eax, 5
jne 0x14025e575
cmp byte [rsi + 0x11], 0
je 0x14025e5bf
mov byte [rsi + 0x16], 4
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
test rax, rax
je 0x14025e5e1
cmp byte [rsi + 0xb], 0
je 0x14025e79a
lea rdx, [rsi + 0x68]
mov rax, qword [rax + 0x30]
call qword [case.0x1403339d6.0]
mov ebx, eax
test eax, eax
jne 0x14025e7af
xor edx, edx
cmp byte [rsi + 0x10], 0
sete dl
mov rcx, rsi
call fcn.14025a900
mov ebx, eax
mov byte [rsi + 0x15], 0
jmp 0x14025e6fb
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
mov edx, 4
call qword [case.0x1403339d6.0]
mov ebx, eax
test eax, eax
jne 0x14025e191
jmp 0x14025e571
xor ebx, ebx
cmp byte [rsi + 9], 2
je 0x14025e6c4
mov r14, qword [rsi]
lea r9, [rsp + 0x30]
mov dword [r9], 0xaaaaaaaa
mov rdx, qword [rsi + 0xe0]
mov rax, qword [r14 + 0x38]
mov rcx, r14
xor r8d, r8d
call qword [case.0x1403339d6.0]
mov ebx, eax
test eax, eax
jne 0x14025e6b4
cmp dword [rsp + 0x30], 0
je 0x14025e6b4
lea rcx, [rsp + 0x2c]
mov dword [rcx], 0
mov r8, qword [rsi + 0x50]
mov rdx, qword [rsi + 0xe0]
mov rax, qword [r14 + 0x28]
mov qword [rsp + 0x20], rcx
mov rcx, r14
mov r9d, 0x802
call qword [case.0x1403339d6.0]
mov ebx, eax
test eax, eax
jne 0x14025e6b4
xor ebx, ebx
test byte [rsp + 0x2c], 1
je 0x14025e6b4
lea rax, [0x1403f1b90]
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
lea r8, str.cannot_open_file
mov ebx, recv
mov ecx, recv
mov r9d, 0xed49
call fcn.1402487b0
mov r14, qword [rsi + 0x50]
mov rax, qword [r14]
test rax, rax
je 0x14025e6b4
mov rax, qword [rax + 8]
mov rcx, r14
call qword [case.0x1403339d6.0]
mov qword [r14], 0
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
test rax, rax
jne 0x14025e581
cmp byte [rsi + 8], 0
jne 0x14025e6fb
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x14025e6f5
cmp byte [rsi + 0x11], 0
jne 0x14025e6eb
mov rax, qword [rax + 0x40]
mov edx, 1
call qword [case.0x1403339d6.0]
cmp byte [rsi + 0x16], 5
je 0x14025e6f5
mov byte [rsi + 0x16], 1
mov al, byte [rsi + 0x10]
mov byte [rsi + 0x17], al
test ebx, ebx
jne 0x14025e7af
cmp byte [rsi + 0x10], 0
jne 0x14025e16d
cmp byte [rsi + 0x1c], 0
je 0x14025e81d
movdqa xmm0, xmmword [0x1403df810]
lea rdx, [rsp + 0x30]
movdqa xmmword [rdx], xmm0
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov r9d, 0x18
mov r8d, reloc.WS2_32.dll_recv
call qword [case.0x1403339d6.0]
test eax, eax
je 0x14025e75a
cmp eax, 0x20a
jne 0x14025e793
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqu xmm0, xmmword [rsi + 0x88]
pcmpeqb xmm0, xmmword [rsp + 0x30]
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x14025e813
inc dword [rsi + 0x84]
mov rax, qword [rsi + 0x70]
test rax, rax
je 0x14025e7e6
mov dword [rax + 0x18], 1
mov rax, qword [rax + 0x40]
jmp 0x14025e781
mov edi, eax
jmp 0x14025e187
mov rax, qword [rax + 0x28]
mov edx, 2
call qword [case.0x1403339d6.0]
mov ebx, eax
test eax, eax
je 0x14025e7da
cmp bl, 0xd
je 0x14025e7c0
movzx eax, bl
cmp eax, 0xa
jne 0x14025e191
mov dword [rsi + 0x30], ebx
mov byte [rsi + 0x15], 6
lea rax, [0x140258ca0]
mov qword [rsi + 0x110], rax
jmp 0x14025e191
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
jmp 0x14025e58b
mov rcx, qword [rsi + 0x120]
xor edx, edx
call fcn.14025bed0
cmp byte [rsi + 0x1b], 0
je 0x14025e813
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
xor edx, edx
xor r8d, r8d
call qword [case.0x1403339d6.0]
cmp byte [rsi + 0x10], 0
jne 0x14025e16d
lea r9, [rsp + 0x2c]
mov dword [r9], 0xaaaaaaaa
mov rcx, qword [rsi]
mov rdx, qword [rsi + 0x130]
mov rax, qword [rcx + 0x38]
xor r8d, r8d
call qword [case.0x1403339d6.0]
mov edi, eax
test eax, eax
jne 0x14025e16d
cmp dword [rsp + 0x2c], 0
je 0x14025e8c9
mov rax, qword [rsi + 0x128]
test rax, rax
je 0x14025e86b
cmp word [rax + 0x3c], 0
js 0x14025e86b
mov eax, dword [rax + 0x5c]
test eax, eax
jne 0x14025e8b1
mov rcx, qword [rsi + 0x48]
cmp qword [rcx], 0
je 0x14025e8ff
lea rdx, [rsp + 0x30]
mov qword [rdx], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
call qword [case.0x1403339d6.0]
test eax, eax
jne 0x14025e91b
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsi + 0xc8]
add rax, rcx
dec rax
cqo
idiv rcx
cmp eax, dword [rsi + 0xbc]
jbe 0x14025e8de
mov dword [rsi + 0xbc], eax
jmp 0x14025e8e2
mov al, byte [rsi + 0x16]
jmp 0x14025e3fb
xor edi, edi
cmp byte [rsi + 9], 5
jne 0x14025e16d
mov byte [rsi + 9], 0
jmp 0x14025e16d
test eax, eax
je 0x14025e8ff
cmp byte [rsi + 0x10], 0
jne 0x14025e8f2
cmp qword [rsi + 0x128], 0
je 0x14025e922
mov dword [0], 1
jmp 0x14025e971
mov rcx, qword [rsi]
mov rax, qword [rcx + 0x30]
test rax, rax
je 0x14025e971
mov rdx, qword [rsi + 0x130]
xor r8d, r8d
call qword [case.0x1403339d6.0]
mov edi, eax
jmp 0x14025e16d
mov edi, recv
cmp byte [rsi + 0x11], 0
jne 0x14025e16d
cmp byte [rsi + 8], 0
je 0x14025e978
mov rdi, qword [rsi + 0x50]
mov rax, qword [rdi]
test rax, rax
je 0x14025e957
mov rax, qword [rax + 8]
mov rcx, rdi
call qword [case.0x1403339d6.0]
mov qword [rdi], 0
mov rcx, rsi
call fcn.14025e9a0
mov edi, eax
test eax, eax
jne 0x14025e16d
mov byte [rsi + 9], 5
mov byte [rsi + 0x15], 0
xor edi, edi
jmp 0x14025e16d
mov rax, qword [rsi + 0x48]
mov rax, qword [rax]
cmp dword [rax], 2
jl 0x14025e16d
cmp qword [rax + 0x68], 0
jne 0x14025e937
jmp 0x14025e16d