Function at 0x14007c770
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov rax, rsp
push r12
sub rsp, 0xb0
mov qword [rax + 8], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
xor esi, esi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x28], r13
xor bl, bl
mov qword [rax - 0x30], r14
mov rdi, r8
mov qword [rax - 0x38], r15
mov rax, qword [0x14013e2d8]
xor r14b, r14b
mov r8d, 0xa
mov rbp, rdx
xor r13b, r13b
movzx edx, r8w
mov qword [rsp + 0x48], rax
mov r15, rcx
mov qword [rsp + 0x58], rsi
mov qword [0x14013e2d8], rsi
lea r12d, [rsi + 1]
mov dword [rsp + 0x38], 0xffffffff
mov word [rsp + 0x30], dx
mov byte [0x14013e2d6], sil
mov byte [0x14013e2d5], sil
mov byte [0x14013e2d4], sil
mov dword [0x14013e21c], esi
mov byte [rsp + 0xd0], sil
mov byte [rsp + 0x33], bl
mov byte [rsp + 0x34], bl
mov byte [rsp + 0xd8], r14b
mov byte [rsp + 0x32], bl
cmp word [rdi], si
je 0x14007ca3c
lea rbx, [0x140000000]
movzx ecx, word [rdi]
call qword [sym.imp.MSVCR100.dll_towupper]
movzx edx, ax
add edx, 0xffffffbd
cmp edx, 0x19
ja case.0x14007c852.76
movsxd rax, edx
movzx eax, byte [rbx + rax + 0x7d4a4]
mov ecx, dword [rbx + rax*4 + 0x7d47c]
add rcx, rbx
jmp rcx
movzx ebx, word [rdi + 2]
test ebx, 0xffffff80
jne 0x14007c874
mov edx, 2
mov ecx, ebx
call qword [sym.imp.MSVCR100.dll__isctype]
test eax, eax
je 0x14007c874
and ebx, 0xffffffdf
movzx edx, word [rsp + 0x30]
cmp bx, 0x4c
lea rbx, [0x140000000]
jne 0x14007c898
add rdi, 2
mov byte [0x14013e2d6], 2
xor esi, esi
jmp 0x14007ca26
mov byte [0x14013e2d6], r12b
xor esi, esi
jmp 0x14007ca26
cmp word [rdi + 2], 0
lea rax, [rdi + 2]
je case.0x14007c852.76
mov rdi, rax
movzx eax, word [rax]
test ax, ax
je case.0x14007c852.76
movzx edx, ax
mov word [rsp + 0x30], ax
jmp 0x14007ca26
lea r10, [rdi + 2]
movzx eax, word [r10]
cmp ax, 0x20
je 0x14007c8e5
cmp ax, 9
jne 0x14007c8eb
add r10, 2
jmp 0x14007c8d5
movzx edx, word [r10]
mov rdi, r10
test dx, dx
je 0x14007c92f
nop word [rax + rax]
lea rcx, [0x140107c20]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14007c943
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14007c910
movzx edx, word [rdi + 2]
add rdi, 2
test dx, dx
jne 0x14007c900
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r10
repne scasw ax, word [rdi]
not rcx
lea rdi, [r10 + rcx*2 - 2]
mov r8, rdi
lea rcx, [0x140143150]
xor r9d, r9d
sub r8, r10
mov rdx, r10
sar r8, 1
call fcn.14004af50
mov qword [0x14013e2d8], rax
test rax, rax
je 0x14007d39f
cmp byte [rax + 0x79], 0
jne 0x14007d39f
mov ecx, dword [rax + 0x20]
cmp ecx, 2
jl 0x14007d39f
cmp ecx, 3
jg 0x14007d39f
mov rcx, qword [rax + 0x18]
cmp word [rcx + 8], 0
jne 0x14007d39f
cmp word [rcx + 0x20], 0
jne 0x14007d39f
add rdi, 0xfffffffffffffffe
jmp case.0x14007c852.76
mov byte [0x14013e2d5], r12b
jmp case.0x14007c852.76
lea rcx, [rdi + 2]
call qword [sym.imp.MSVCR100.dll__wtoi]
cmp eax, r12d
cmovl eax, r12d
dec eax
mov dword [0x14013e21c], eax
jmp case.0x14007c852.76
lea rdx, str.Random
mov r8d, 6
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll__wcsnicmp]
movzx edx, word [rsp + 0x30]
test eax, eax
jne 0x14007ca02
movzx r14d, r12b
mov byte [rsp + 0xd8], r12b
add rdi, 0xa
jmp 0x14007ca26
mov byte [0x14013e2d4], r12b
jmp 0x14007ca26
mov byte [rsp + 0x32], r12b
mov dword [rsp + 0x38], esi
jmp case.0x14007c852.76
movzx r13d, r12b
jmp case.0x14007c852.76
mov byte [rsp + 0x34], r12b
movzx edx, word [rsp + 0x30]
add rdi, 2
cmp word [rdi], 0
jne 0x14007c825
xor bl, bl
mov r8d, 0xa
movzx ecx, word [rbp]
test cx, cx
je 0x14007d39f
mov rsi, qword [0x14013f500]
mov qword [rsp + 0x68], rsi
movzx eax, byte [rsi + 0x23]
test al, al
jne 0x14007ca65
mov rax, qword [rsi + 0x10]
movzx eax, byte [rax + 0x23]
cmp al, 2
ja 0x14007d39f
mov rdi, r12
mov rax, rbp
cmp cx, dx
jne 0x14007ca7b
inc rdi
movzx ecx, word [rax + 2]
add rax, 2
test cx, cx
jne 0x14007ca73
mov r12, rax
sub r12, rbp
sar r12, 1
test r13b, r13b
jne 0x14007caae
cmp rax, rbp
jbe 0x14007caae
cmp word [rax - 2], dx
jne 0x14007caae
mov byte [rsp + 0xd0], 1
dec rdi
jmp 0x14007cade
cmp dx, 0xa
jne 0x14007cade
mov edx, r8d
mov rcx, rbp
call qword [sym.imp.MSVCR100.dll_wcschr]
test rax, rax
je 0x14007cade
cmp rax, rbp
jbe 0x14007cade
cmp word [rax - 2], 0xd
jne 0x14007cade
mov bl, 1
mov byte [rsp + 0x33], bl
mov byte [rsp + 0xd0], bl
cmp rdi, 1
jne 0x14007cb02
xor r9d, r9d
mov r8, r12
mov rdx, rbp
mov rcx, rsi
mov byte [rsp + 0x20], dil
call fcn.1400e6e20
mov r12d, eax
jmp 0x14007d39f
cmp qword [0x14013e2d8], 0
jne 0x14007cb14
test bl, bl
je 0x14007cb95
lea rcx, [r12 + r12 + 6]
call qword [sym.imp.MSVCR100.dll_malloc]
mov r13, rax
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x14007cb4d
lea r9, [0x1401035ac]
lea rdx, str.Out_of_memory.
xor r8d, r8d
mov rcx, r15
call fcn.14005f3f0
mov r12d, eax
jmp 0x14007d39f
lea rbx, [r12 + r12]
mov rdx, rbp
mov rcx, rax
lea r8, [rbx + 2]
call sub.MSVCR100.dll_memcpy
cmp byte [rsp + 0x33], 0
mov rbp, r13
je 0x14007cb95
lea rcx, [0x140122ac8]
sub rbx, rcx
lea rdx, [rbx + r13]
nop dword [rax + rax]
movzx eax, word [rcx]
add rcx, 2
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x14007cb80
add r12, 2
xor eax, eax
test r14b, r14b
lea rcx, [rdi + 1]
setne al
inc eax
cdqe
lea rbx, [rax*8]
mov qword [rsp + 0x60], rbx
imul rcx, rbx
call qword [sym.imp.MSVCR100.dll_malloc]
mov r14, rax
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x14007cbea
lea r9, [0x1401035ac]
lea rdx, str.Out_of_memory.
xor r8d, r8d
mov rcx, r15
call fcn.14005f3f0
mov r12d, eax
jmp 0x14007d39f
mov rdx, qword [0x14013e4f0]
movzx r15d, byte [rsp + 0xd8]
xor ecx, ecx
mov qword [rax], rbp
mov rdi, rax
mov r13d, ecx
mov qword [rsp + 0x40], rcx
cmp word [rbp], cx
je 0x14007cca0
movzx eax, word [rsp + 0x30]
nop dword [rax]
cmp word [rbp], ax
jne 0x14007cc90
inc r13
mov word [rbp], cx
test r15b, r15b
je 0x14007cc81
dec dword [0x14013a514]
jne 0x14007cc46
call fcn.14002f350
mov rdx, qword [0x14013e4f0]
mov ecx, dword [rdx]
add rdx, 4
mov eax, ecx
mov qword [0x14013e4f0], rdx
shr eax, 0xb
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
shr eax, 1
xor ecx, ecx
mov qword [rdi + 8], rax
lea rax, [rbp + 2]
add rdi, rbx
mov qword [rdi], rax
movzx eax, word [rsp + 0x30]
add rbp, 2
cmp word [rbp], 0
jne 0x14007cc20
mov qword [rsp + 0x40], r13
cmp byte [rsp + 0xd0], 0
jne 0x14007cd04
inc r13
mov qword [rsp + 0x40], r13
test r15b, r15b
je 0x14007cd04
dec dword [0x14013a514]
jne 0x14007cccb
call fcn.14002f350
mov rdx, qword [0x14013e4f0]
mov ecx, dword [rdx]
add rdx, 4
mov eax, ecx
mov qword [0x14013e4f0], rdx
shr eax, 0xb
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
shr eax, 1
mov qword [rdi + 8], rax
cmp qword [0x14013e2d8], 0
je 0x14007cd17
lea r9, [0x14007beb0]
jmp 0x14007cd3c
test r15b, r15b
je 0x14007cd25
lea r9, [0x14007bea0]
jmp 0x14007cd3c
cmp byte [rsp + 0x34], 0
lea r9, [0x14007bc70]
lea rax, [0x14007bdf0]
cmovne r9, rax
mov r8, rbx
mov rdx, r13
mov rcx, r14
call qword [sym.imp.MSVCR100.dll_qsort]
movzx ecx, byte [rsi + 0x23]
mov r10d, reloc.WSOCK32.dll_recv
test cl, cl
jne 0x14007cd74
mov rcx, qword [rsi + 0x10]
xor r9d, r9d
mov r8, r12
xor edx, edx
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
jmp 0x14007d080
mov bpl, 1
movzx edx, bpl
cmp r12, 0xffffffffffffffff
jne 0x14007cd8b
xor dl, dl
xor r14d, r14d
mov r12d, r14d
jmp 0x14007cd91
xor bpl, bpl
xor r14d, r14d
lea rax, [r12 + 1]
lea rbx, [rax + rax]
cmp cl, 2
jne 0x14007cdd5
test bpl, bpl
je 0x14007cdb8
lea rcx, [0x1401035ac]
mov rdx, r12
call fcn.140006bc0
jmp 0x14007d080
lea rcx, [0x140143dd0]
mov rdx, rax
call fcn.140006c80
mov edx, r14d
test rax, rax
setne dl
jmp 0x14007d082
mov r8, qword [0x14013b0d0]
cmp rbx, r8
jbe 0x14007cdf3
cmp rbx, qword [rsi + 0x18]
jbe 0x14007cdf3
lea rdx, [0x140124720]
jmp 0x14007d06d
cmp rax, 2
movzx eax, byte [rsi + 0x21]
jae 0x14007ce85
test dl, dl
mov edi, r14d
setne dil
add edi, 2
test al, 2
je 0x14007ce1f
mov rcx, qword [rsi]
and al, 0x3d
mov byte [rsi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
movzx ecx, byte [rsi + 0x20]
and byte [rsi + 0x21], 0x82
mov qword [rsi + 0x10], r14
dec ecx
je 0x14007ce56
dec ecx
jne 0x14007d09d
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x14007d09d
cmp edi, 1
jl 0x14007ce63
cmp edi, 3
jne 0x14007ce56
cmp rax, 0x1000
ja 0x14007ce63
mov rax, qword [rsi + 8]
mov word [rax], r14w
jmp 0x14007d09d
mov rcx, qword [rsi + 8]
call qword [sym.imp.MSVCR100.dll_free]
and byte [rsi + 0x21], 0x7f
lea rax, [0x140141fa8]
mov qword [rsi + 8], rax
mov qword [rsi + 0x18], r14
jmp 0x14007d09d
test al, 2
je 0x14007cea4
mov rcx, qword [rsi]
and al, 0x3d
mov byte [rsi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov r8, qword [0x14013b0d0]
mov r10d, reloc.WSOCK32.dll_recv
mov rcx, qword [rsi + 0x18]
and byte [rsi + 0x21], 0x82
cmp rbx, rcx
jbe 0x14007d015
movzx r9d, byte [rsi + 0x20]
movzx eax, r9b
cmp r9b, 1
jbe 0x14007cedd
cmp al, 2
je 0x14007cf16
mov rdi, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xd0]
jmp 0x14007d009
mov edi, 0x80
cmp rbx, rdi
ja 0x14007cf16
cmp rbx, 8
ja 0x14007cef4
mov edi, 8
jmp 0x14007cefc
cmp rbx, 0x10
cmovbe rdi, r10
mov rcx, rdi
call fcn.1400dd290
test rax, rax
je 0x14007d087
mov byte [rsi + 0x20], 1
jmp 0x14007d009
cmp rbx, 0x20
jae 0x14007cf26
mov edi, SafeArrayAllocDescriptor
jmp 0x14007cfd0
mov edi, 0x208
cmp rbx, rdi
jb 0x14007cfd0
cmp rbx, 0x50000
jae 0x14007cf8c
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test rbx, rbx
jns 0x14007cf53
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
movsd xmm1, qword [0x1401279d8]
xor eax, eax
comisd xmm0, xmm1
jbe 0x14007cf82
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14007cf82
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rdi, xmm0
add rdi, rax
jmp 0x14007cfd0
cmp rbx, 0x320000
jae 0x14007cf9e
lea rdi, [rbx + 0x8000]
jmp 0x14007cfd0
cmp rbx, 0xc80000
jae 0x14007cfc9
movabs rax, 0x47ae147ae147ae15
mov rdi, rbx
mul rbx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 6
add rdi, rbx
jmp 0x14007cfd0
lea rdi, [rbx + 0x20000]
cmp rdi, r8
cmova rdi, r8
cmp r9b, 2
jne 0x14007cff0
test rcx, rcx
je 0x14007cff0
mov rcx, qword [rsi + 8]
mov bl, 1
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x14007cff2
xor bl, bl
test rdi, rdi
js 0x14007d045
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x14007d045
mov byte [rsi + 0x20], 2
and byte [rsi + 0x21], 0x7f
mov qword [rsi + 8], rax
mov qword [rsi + 0x18], rdi
mov rax, qword [rsi + 8]
test bpl, bpl
je 0x14007d091
lea rcx, [0x1401035ac]
cmp rax, rcx
je 0x14007d03a
mov rdx, rcx
lea r8, [r12 + r12]
mov rcx, rax
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rsi + 8]
mov word [rax + r12*2], r14w
jmp 0x14007d095
test bl, bl
je 0x14007d05a
lea rax, [0x140141fa8]
mov qword [rsi + 0x18], r14
mov qword [rsi + 8], rax
jmp 0x14007d062
mov rax, qword [rsi + 8]
mov word [rax], r14w
mov qword [rsi + 0x10], r14
lea rdx, str.Out_of_memory.
lea r8, [0x1401035ac]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov edx, eax
cmp edx, 1
je 0x14007d09d
xor eax, eax
mov r12d, eax
jmp 0x14007d39f
mov word [rax], r14w
lea rax, [r12 + r12]
mov qword [rsi + 0x10], rax
mov r12, qword [rsp + 0x50]
xor eax, eax
xor r8d, r8d
lea edx, [rax + 1]
mov rcx, rsi
lea r14, [r13 - 1]
mov r15d, eax
mov ebp, eax
call fcn.140001830
mov rbx, qword [rsp + 0x40]
xor r8d, r8d
mov rdi, rax
mov r13d, r8d
test rbx, rbx
je 0x14007d1de
movzx esi, word [rsp + 0x30]
movaps xmmword [rsp + 0x70], xmm6
nop dword [rax]
cmp byte [rsp + 0x32], 0
je 0x14007d17f
test rbp, rbp
je 0x14007d17f
cmp byte [0x14013e2d5], 0
je 0x14007d21d
cmp dword [0x14013e21c], 0
jne 0x14007d21d
mov rbx, qword [r12]
mov rcx, rbx
call fcn.140005040
mov rcx, rbx
test al, al
je 0x14007d138
xor edx, edx
lea r8d, [rdx + 0x10]
call qword [sym.imp.MSVCR100.dll__wcstoi64]
pxor xmm6, xmm6
cvtsi2sd xmm6, rax
jmp 0x14007d142
call qword [sym.imp.MSVCR100.dll__wtof]
movapd xmm6, xmm0
mov rcx, rbp
call fcn.140005040
mov rcx, rbp
test al, al
je 0x14007d168
xor edx, edx
lea r8d, [rdx + 0x10]
call qword [sym.imp.MSVCR100.dll__wcstoi64]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
jmp 0x14007d16e
call qword [sym.imp.MSVCR100.dll__wtof]
ucomisd xmm6, xmm0
jp 0x14007d17a
je 0x14007d27c
mov rbx, qword [rsp + 0x40]
mov rax, qword [r12]
movzx ecx, word [rax]
test cx, cx
je 0x14007d1a3
nop dword [rax + rax]
add rax, 2
mov word [rdi], cx
add rdi, 2
movzx ecx, word [rax]
test cx, cx
jne 0x14007d190
cmp r13, r14
jb 0x14007d1b2
cmp byte [rsp + 0xd0], 0
je 0x14007d1b9
mov word [rdi], si
add rdi, 2
mov rbp, qword [r12]
add r12, qword [rsp + 0x60]
inc r13
mov r8d, 0
cmp r13, rbx
jb 0x14007d0e0
mov rsi, qword [rsp + 0x68]
movaps xmm6, xmmword [rsp + 0x70]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.MSVCR100.dll_free]
xor eax, eax
lea rbx, [0x140143ff8]
cmp byte [rsp + 0x33], al
je 0x14007d307
cmp word [rdi - 4], 0xd
jne 0x14007d2ce
mov word [rdi - 4], ax
cmp byte [rsi + 0x23], al
jne 0x14007d2a4
mov rdi, qword [rsi + 0x10]
jmp 0x14007d2a7
cmp byte [0x14013e2d6], 0
mov rdx, rbp
jne 0x14007d235
mov rcx, qword [r12]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
jmp 0x14007d26d
cmp byte [0x14013e2d6], 2
jne 0x14007d24a
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x14007d26d
mov rax, qword [r12]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x14007d268
add rax, 2
test cx, cx
jne 0x14007d251
mov eax, r8d
jmp 0x14007d26d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
jne 0x14007d17f
jmp 0x14007d281
mov rbx, qword [rsp + 0x40]
inc r15d
cmp r13, r14
jne 0x14007d1bd
cmp byte [rsp + 0xd0], 0
jne 0x14007d1bd
sub rdi, 2
jmp 0x14007d1bd
mov rdi, rsi
cmp byte [rdi + 0x23], 1
jne 0x14007d2c5
test byte [rdi + 0x21], 8
je 0x14007d2bb
mov rcx, rdi
call fcn.140001130
add rdi, 0x10
add qword [rdi], 0xfffffffffffffffc
jmp 0x14007d30a
add qword [rbx], 0xfffffffffffffffc
mov rdi, rbx
jmp 0x14007d30a
mov word [rdi - 2], ax
cmp byte [rsi + 0x23], al
jne 0x14007d2dd
mov rdi, qword [rsi + 0x10]
jmp 0x14007d2e0
mov rdi, rsi
cmp byte [rdi + 0x23], 1
jne 0x14007d2fe
test byte [rdi + 0x21], 8
je 0x14007d2f4
mov rcx, rdi
call fcn.140001130
add rdi, 0x10
add qword [rdi], 0xfffffffffffffffe
jmp 0x14007d30a
add qword [rbx], 0xfffffffffffffffe
mov rdi, rbx
jmp 0x14007d30a
mov word [rdi], ax
cmp byte [rsp + 0x32], 0
mov r12d, 1
je 0x14007d370
test r15d, r15d
je 0x14007d370
xor r8d, r8d
mov edx, r12d
mov rcx, rsi
call fcn.140001830
or rcx, 0xffffffffffffffff
mov rdi, rax
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rbp, [rcx - 1]
cmp byte [rsi + 0x23], al
jne 0x14007d348
mov rdi, qword [rsi + 0x10]
jmp 0x14007d34b
mov rdi, rsi
cmp byte [rdi + 0x23], r12b
jne 0x14007d363
test byte [rdi + 0x21], 8
je 0x14007d35f
mov rcx, rdi
call fcn.140001130
lea rbx, [rdi + 0x10]
lea rax, [rbp + rbp]
mov dword [rsp + 0x38], r15d
mov qword [rbx], rax
cmp byte [rsi + 0x23], 0
jne 0x14007d37a
mov rsi, qword [rsi + 0x10]
cmp byte [rsi + 0x23], 2
jne 0x14007d39b
cmp qword [0x140143de8], 0
je 0x14007d39b
lea rcx, [0x140143dd0]
call fcn.140006d40
mov r12d, eax
jmp 0x14007d39f
and byte [rsi + 0x21], 0x86
mov ebx, dword [rsp + 0x38]
mov r15, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
mov r13, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0xa8]
cmp ebx, 0xffffffff
je 0x14007d43f
mov rdi, qword [0x140140268]
cmp byte [rdi + 0x23], 0
jne 0x14007d3e1
mov rdi, qword [rdi + 0x10]
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x14007d3f7
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
and byte [rdi + 0x21], 0x9b
or byte [rdi + 0x21], 0x18
mov rax, rbx
movzx eax, byte [rdi + 0x21]
mov qword [rdi], rbx
jns 0x14007d419
mov rcx, rdi
call fcn.140001130
and byte [rdi + 0x21], 0x8f
jmp 0x14007d43f
cmp dword [0x14013f88c], 0
je 0x14007d426
test al, 0x10
jne 0x14007d433
cmp dword [0x14013f890], 0
je 0x14007d43f
test al, 0x20
je 0x14007d43f
test al, 8
je 0x14007d43f
mov rcx, rdi
call fcn.140001130
mov rax, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xc0]
test rax, rax
je 0x14007d462
mov rcx, rax
call qword [sym.imp.MSVCR100.dll_free]
mov rdx, qword [rsp + 0x48]
mov eax, r12d
mov qword [0x14013e2d8], rdx
add rsp, 0xb0
pop r12
ret