Function at 0x140082ad0
Capabilities:
Check if file exists
Get file attributes
Set current directory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push r12
push r14
lea rbp, [rsp - 0x21a50]
mov eax, 0x21b50
call fcn.140100df0
sub rsp, rax
cmp dword [0x14013f8dc], 4
mov rsi, qword [0x14013f500]
mov r12, r9
mov rax, r8
mov rbx, rdx
mov r14, rcx
jl 0x140082b37
lea r9, [0x1401035ac]
lea rdx, str.The_maximum_number_of_File_Dialogs_has_been_reached.
xor r8d, r8d
call fcn.14005f3f0
add rsp, 0x21b50
pop r14
pop r12
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x21b90], rdi
mov qword [rsp + 0x21b48], r13
mov qword [rsp + 0x21b40], r15
xor r15d, r15d
mov word [rbp + 0x1a30], r15w
test rax, rax
je 0x140082c53
cmp word [r8], r15w
je 0x140082c53
lea rcx, [rbp + 0x20]
mov r8d, 0x103
mov rdx, rax
call qword [sym.imp.MSVCR100.dll_wcsncpy]
lea r8d, [r15 + 3]
lea rdx, [0x140123500]
lea rcx, [rbp + 0x20]
mov word [rbp + 0x226], r15w
call qword [sym.imp.MSVCR100.dll_wcsncmp]
lea rcx, [rbp + 0x20]
test eax, eax
sete r13b
test r13b, r13b
je 0x140082be4
lea edx, [r15 + 0x7d]
call qword [sym.imp.MSVCR100.dll_wcschr]
test rax, rax
je 0x140082c58
cmp word [rax + 2], r15w
je 0x140082c58
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp + 0x20]
repne scasw ax, word [rdi]
not rcx
cmp word [rbp + rcx*2 + 0x1c], 0x5c
jne 0x140082bf3
jmp 0x140082c58
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140082bf3
test al, 0x10
jne 0x140082c58
lea rcx, [rbp + 0x20]
mov edx, 0x5c
call qword [sym.imp.MSVCR100.dll_wcsrchr]
mov rdi, rax
test rax, rax
je 0x140082c2f
lea rdx, [rax + 2]
lea rcx, [rbp + 0x1a30]
mov r8d, 0xfffe
call qword [sym.imp.MSVCR100.dll_wcsncpy]
mov word [rbp + 0x21a2c], r15w
mov word [rdi], r15w
jmp 0x140082c58
test r13b, r13b
jne 0x140082c58
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x1a30]
mov r8d, 0xfffe
call qword [sym.imp.MSVCR100.dll_wcsncpy]
mov word [rbp + 0x21a2c], r15w
mov word [rbp + 0x20], r15w
test r12, r12
je 0x140082c84
cmp word [r12], r15w
je 0x140082c84
lea rcx, [rbp + 0x1230]
mov r8d, 0x3ff
mov rdx, r12
call qword [sym.imp.MSVCR100.dll_wcsncpy]
mov word [rbp + 0x1a2e], r15w
jmp 0x140082ca3
mov r9, qword [0x140143d08]
lea r8, str.Select_File____s
lea rcx, [rbp + 0x1230]
mov edx, 0x400
call fcn.1400e0640
mov rdi, qword [rbp + 0x21aa0]
mov word [rbp + 0xa30], r15w
mov word [rbp + 0x230], r15w
cmp word [rdi], r15w
je 0x140082d23
mov edx, 0x28
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_wcschr]
mov r8d, 0x3ff
lea rcx, [rbp + 0x230]
test rax, rax
je 0x140082d6c
lea rdx, [rax + 2]
call qword [sym.imp.MSVCR100.dll_wcsncpy]
lea rcx, [rbp + 0x230]
mov edx, 0x29
mov word [rbp + 0xa2e], r15w
call qword [sym.imp.MSVCR100.dll_wcsrchr]
test rax, rax
je 0x140082d13
mov word [rax], r15w
jmp 0x140082d7d
mov word [rbp + 0x230], r15w
mov word [rbp + 0xa30], r15w
lea rcx, [rbp - 0x78]
xor edx, edx
mov r8d, SysStringByteLen
call sub.MSVCR100.dll_memset
mov rcx, qword [0x14013b0f8]
mov dword [rbp - 0x80], 0x98
add rcx, 0x68
call fcn.1400b1320
test rax, rax
je 0x140082fca
mov rax, qword [0x14013b0f8]
mov rcx, qword [rax + 0x68]
mov rax, qword [rcx + 8]
mov qword [rbp - 0x78], rax
jmp 0x140082fce
mov rdx, rdi
call qword [sym.imp.MSVCR100.dll_wcsncpy]
mov word [rbp + 0xa2e], r15w
cmp word [rbp + 0x230], r15w
je 0x140082d1b
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0x230]
repne scasw ax, word [rdi]
or ebx, 0xffffffff
mov r12d, eax
not rcx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rax
dec rcx
mov r15, rcx
cmp rcx, 0x1388
jb 0x140082f72
mov edi, eax
lea r13, [rbp + 0x230]
nop word [rax + rax]
lea rdx, [0x140120fc4]
mov rcx, r13
call qword [sym.imp.MSVCR100.dll_wcsstr]
mov rcx, qword [rsp + 0x60]
mov r14, rax
test rax, rax
je 0x140082e8f
inc edi
dec ebx
mov dword [rsp + 0x68], edi
mov rdi, rax
sub rdi, r13
sar rdi, 1
lea rdx, [rdi + rcx]
mov qword [rsp + 0x58], rdx
cmp rdx, qword [rsp + 0x70]
jb 0x140082e60
lea rcx, [rbp + 0x230]
movsxd r9, r15d
mov r8d, ebx
sub rax, rcx
movsxd rcx, edx
mov edx, dword [rsp + 0x68]
sar rax, 1
cdqe
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
or rcx, 0xffffffffffffffff
call fcn.1400e1330
mov rcx, r12
lea rdx, [rax + rax]
mov qword [rsp + 0x70], rax
call qword [sym.imp.MSVCR100.dll_realloc]
test rax, rax
je 0x140082eca
mov rcx, qword [rsp + 0x60]
mov r12, rax
test rdi, rdi
je 0x140082e7f
lea r8, [rdi + rdi]
lea rcx, [r12 + rcx*2]
mov rdx, r13
call sub.MSVCR100.dll_memcpy
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x60], rcx
mov edi, dword [rsp + 0x68]
lea r13, [r14 + 2]
test ebx, ebx
jne 0x140082dd0
test edi, edi
je 0x140082ed8
lea rdx, [rbp + 0x230]
mov rax, r13
sub rax, rdx
sar rax, 1
sub r15, rax
je 0x140082f48
lea rdi, [r15 + rcx]
cmp rdi, qword [rsp + 0x70]
jb 0x140082f35
lea rdx, [rdi + rdi + 2]
mov rcx, r12
call qword [sym.imp.MSVCR100.dll_realloc]
test rax, rax
jne 0x140082f2d
test r12, r12
je 0x140082ed8
mov rcx, r12
call qword [sym.imp.MSVCR100.dll_free]
xor r15d, r15d
mov r14, qword [rbp + 0x21a80]
mov r9, qword [rbp + 0x21aa0]
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r15
lea rax, [rbp + 0x230]
mov qword [rsp + 0x30], r15
lea r8, str._s_c_s_cAll_Files__.__c._c
mov qword [rsp + 0x28], rax
lea rcx, [rbp + 0xa30]
mov edx, 0x400
mov qword [rsp + 0x20], r15
call fcn.1400e0640
mov rbx, qword [rbp + 0x21a88]
jmp 0x140082d23
mov rcx, qword [rsp + 0x60]
mov r12, rax
lea r8, [r15 + r15]
lea rcx, [r12 + rcx*2]
mov rdx, r13
call sub.MSVCR100.dll_memcpy
mov rcx, rdi
lea r8, [rcx + rcx + 2]
xor r15d, r15d
mov rdx, r12
mov word [r12 + rcx*2], r15w
lea rcx, [rbp + 0x230]
call sub.MSVCR100.dll_memcpy
mov rcx, r12
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x140082edb
lea rdi, [rbp + 0x230]
nop dword [rax]
lea rdx, [0x140120fc4]
mov rcx, rdi
call qword [sym.imp.MSVCR100.dll_wcsstr]
mov rdi, rax
test rax, rax
je 0x140082fc2
lea rcx, [rbp + 0x230]
mov r8, r15
lea rdx, [rdi + 2]
sub rax, rcx
mov rcx, rdi
sar rax, 1
sub r8, rax
add r8, r8
call qword [sym.imp.MSVCR100.dll_memmove]
dec r15
dec ebx
jne 0x140082f80
xor r15d, r15d
jmp 0x140082ee2
mov qword [rbp - 0x78], r15
cmp word [rbp + 0xa30], 0
movzx edi, word [rbx]
lea rax, [rbp + 0x1230]
mov qword [rbp - 0x28], rax
lea rcx, str.All_Files__._
lea rax, [rbp + 0xa30]
cmove rax, rcx
cmp word [rbp + 0x20], 0
mov dword [rbp - 0x48], 0xfffe
mov qword [rbp - 0x68], rax
lea rax, [rbp + 0x1a30]
mov qword [rbp - 0x50], rax
lea rax, [rbp + 0x20]
cmove rax, r15
xor r13b, r13b
xor r12b, r12b
mov byte [rsp + 0x50], r13b
mov qword [rbp - 0x30], rax
test edi, 0xffffff80
jne 0x140083044
mov edx, 2
mov ecx, edi
call qword [sym.imp.MSVCR100.dll__isctype]
test eax, eax
je 0x140083044
and edi, 0xffffffdf
movzx eax, di
cmp eax, 0x4d
je 0x140083056
cmp eax, 0x53
jne 0x140083062
mov r12b, 1
jmp 0x14008305e
mov r13b, 1
mov byte [rsp + 0x50], r13b
add rbx, 2
mov rcx, rbx
call fcn.140005040
mov ecx, reloc.WSOCK32.dll_recv
test al, al
je 0x140083083
mov r8d, ecx
xor edx, edx
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcstol]
jmp 0x14008308c
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll__wtoi]
mov edx, eax
mov ecx, 0x180004
mov eax, 0x80004
test dl, 0x20
cmovne eax, ecx
mov dword [rbp - 0x20], eax
test dl, 0x10
je 0x1400830ac
or eax, 2
mov dword [rbp - 0x20], eax
test dl, 8
je 0x1400830b8
bts eax, 0xd
mov dword [rbp - 0x20], eax
test r13b, r13b
jne 0x1400830c2
test dl, 4
je 0x1400830c9
bts eax, 9
mov dword [rbp - 0x20], eax
test dl, 2
je 0x1400830d5
bts eax, 0xb
mov dword [rbp - 0x20], eax
test dl, 1
je 0x1400830e1
bts eax, 0xc
mov dword [rbp - 0x20], eax
call fcn.1400ea960
mov rcx, qword [0x14013f6f8]
xor r9d, r9d
lea edx, [r9 + 0x44]
mov r8d, 0x403
movzx ebx, al
call qword [sym.imp.USER32.dll_PostMessageW]
inc dword [0x14013f8dc]
test r12b, r12b
jne 0x140083128
mov ecx, dword [rbp - 0x20]
test cl, 2
je 0x14008311c
bt ecx, 0xd
jae 0x140083128
lea rcx, [rbp - 0x80]
call qword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
jmp 0x140083132
lea rcx, [rbp - 0x80]
call qword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
dec dword [0x14013f8dc]
mov rdx, qword [0x14013b0f8]
test bl, bl
mov edi, eax
sete al
mov byte [rdx + 0x12e], bl
mov byte [rdx + 0x12c], al
cmp word [0x140140270], 0
je 0x140083169
lea rcx, [0x140140270]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test edi, edi
jne 0x14008346c
mov rcx, rsi
call fcn.14002f9e0
cmp eax, 1
je 0x140083185
xor eax, eax
jmp 0x140083b5e
call qword [sym.imp.COMDLG32.dll_CommDlgExtendedError]
test eax, eax
je 0x1400831a1
mov dl, 1
mov rcx, r14
call fcn.14005e3f0
mov r14d, eax
jmp 0x140083b5b
mov rdi, qword [0x140140268]
movzx eax, byte [rdi + 0x23]
test al, al
jne 0x1400831d4
mov rcx, qword [rdi + 0x10]
lea rdx, [0x14010771c]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.1400e6e20
mov r14d, eax
jmp 0x140083b5b
lea r13, [0x14010771c]
mov r14d, 1
cmp qword [rdi + 8], r13
jne 0x1400831f0
mov r12, qword [rdi + 0x10]
shr r12, 1
jmp 0x1400831f3
mov r12, r14
lea rdx, [r12 + 1]
lea rsi, [rdx + rdx]
cmp al, 2
jne 0x140083213
mov rdx, r12
mov rcx, r13
call fcn.140006bc0
mov r14d, eax
jmp 0x140083b5b
mov rcx, qword [0x14013b0d0]
cmp rsi, rcx
jbe 0x140083247
cmp rsi, qword [rdi + 0x18]
jbe 0x140083247
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov r14d, eax
jmp 0x140083b5b
cmp rdx, 2
jae 0x140083261
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x140083b5b
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x14008327e
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [0x14013b0d0]
mov r8, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp rsi, r8
jbe 0x1400833fc
movzx r9d, byte [rdi + 0x20]
movzx eax, r9b
cmp r9b, r14b
jbe 0x1400832b0
cmp al, 2
je 0x1400832f5
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x58]
jmp 0x1400833f0
cmp rsi, 0x80
ja 0x1400832f5
cmp rsi, 8
ja 0x1400832c6
mov ebx, 8
jmp 0x1400832d7
mov ebx, 0x80
cmp rsi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400dd290
test rax, rax
jne 0x1400832ec
mov r14d, r15d
jmp 0x140083b5b
mov byte [rdi + 0x20], r14b
jmp 0x1400833f0
cmp rsi, 0x20
jae 0x140083305
mov ebx, SafeArrayAllocDescriptor
jmp 0x1400833b4
cmp rsi, 0x208
jae 0x140083318
mov ebx, 0x208
jmp 0x1400833b4
cmp rsi, 0x50000
jae 0x140083370
pxor xmm0, xmm0
cvtsi2sd xmm0, rsi
test rsi, rsi
jns 0x140083337
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
movsd xmm1, qword [0x1401279d8]
xor eax, eax
comisd xmm0, xmm1
jbe 0x140083366
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x140083366
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x1400833b4
cmp rsi, 0x320000
jae 0x140083382
lea rbx, [rsi + 0x8000]
jmp 0x1400833b4
cmp rsi, 0xc80000
jae 0x1400833ad
movabs rax, 0x47ae147ae147ae15
mov rbx, rsi
mul rsi
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, rsi
jmp 0x1400833b4
lea rbx, [rsi + 0x20000]
cmp rbx, rcx
cmova rbx, rcx
cmp r9b, 2
jne 0x1400833d6
test r8, r8
je 0x1400833d6
mov rcx, qword [rdi + 8]
movzx esi, r14b
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400833d9
xor sil, sil
test rbx, rbx
js 0x140083428
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x140083428
mov byte [rdi + 0x20], 2
and byte [rdi + 0x21], 0x7f
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], rbx
mov rcx, qword [rdi + 8]
cmp rcx, r13
je 0x140083412
lea r8, [r12 + r12]
mov rdx, r13
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rdi + 8]
lea rcx, [r12 + r12]
mov word [rcx + rax], r15w
mov qword [rdi + 0x10], rcx
jmp 0x140083b5b
test sil, sil
je 0x14008343e
lea rax, [0x140141fa8]
mov qword [rdi + 0x18], r15
mov qword [rdi + 8], rax
jmp 0x140083446
mov rax, qword [rdi + 8]
mov word [rax], r15w
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rdi + 0x10], r15
call fcn.14005f7b0
mov r14d, eax
jmp 0x140083b5b
mov rdi, qword [0x140140268]
mov ebx, 8
movaps xmmword [rsp + 0x21b30], xmm6
movzx eax, byte [rdi + 0x23]
movsd xmm6, qword [0x1401279d8]
movabs rdx, 0x8000000000000000
lea r14d, [rbx - 7]
movabs r9, 0x47ae147ae147ae15
lea r15, [0x140141fa8]
test al, al
jne 0x1400834d0
mov rcx, qword [rdi + 0x10]
lea rdx, [0x140103674]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], r14b
call fcn.1400e6e20
jmp 0x140083724
lea r12, [0x140103674]
cmp qword [rdi + 8], r12
jne 0x1400834e6
mov r15, qword [rdi + 0x10]
shr r15, 1
jmp 0x1400834e9
mov r15, r14
lea rcx, [r15 + 1]
lea r13, [rcx + rcx]
cmp al, 2
jne 0x140083505
mov rdx, r15
mov rcx, r12
call fcn.140006bc0
jmp 0x140083717
cmp r13, qword [0x14013b0d0]
jbe 0x140083533
cmp r13, qword [rdi + 0x18]
jbe 0x140083533
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
jmp 0x140083717
cmp rcx, 2
jae 0x14008354d
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 3]
call fcn.1400e74d0
jmp 0x140083717
movzx eax, byte [rdi + 0x21]
test al, 2
je 0x140083577
mov rcx, qword [rdi]
and al, 0x3d
mov byte [rdi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
movabs rdx, 0x8000000000000000
movabs r9, 0x47ae147ae147ae15
mov rcx, qword [rdi + 0x18]
and byte [rdi + 0x21], 0x82
cmp r13, rcx
jbe 0x1400836ef
movzx r8d, byte [rdi + 0x20]
movzx eax, r8b
cmp r8b, r14b
jbe 0x1400835a9
cmp al, 2
je 0x1400835e9
mov r12, qword [rsp + 0x58]
mov rax, qword [rsp + 0x58]
jmp 0x1400836dc
cmp r13, 0x80
ja 0x1400835e9
cmp r13, rbx
ja 0x1400835bc
mov r12, rbx
jmp 0x1400835cf
mov r12d, 0x80
cmp r13, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe r12d, eax
mov rcx, r12
call fcn.1400dd290
test rax, rax
je 0x140083717
mov byte [rdi + 0x20], r14b
jmp 0x1400836dc
cmp r13, 0x20
jae 0x1400835fa
mov r12d, SafeArrayAllocDescriptor
jmp 0x140083691
cmp r13, 0x208
jae 0x14008360e
mov r12d, 0x208
jmp 0x140083691
cmp r13, 0x50000
jae 0x140083654
pxor xmm0, xmm0
cvtsi2sd xmm0, r13
test r13, r13
jns 0x14008362d
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
xor eax, eax
comisd xmm0, xmm6
jbe 0x14008364a
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x14008364a
mov rax, rdx
cvttsd2si r12, xmm0
add r12, rax
jmp 0x140083691
cmp r13, 0x320000
jae 0x140083666
lea r12, [r13 + 0x8000]
jmp 0x140083691
cmp r13, 0xc80000
jae 0x14008368a
mov rax, r9
mov r12, r13
mul r13
sub r12, rdx
shr r12, 1
add r12, rdx
shr r12, 6
add r12, r13
jmp 0x140083691
lea r12, [r13 + 0x20000]
mov rax, qword [0x14013b0d0]
cmp r12, rax
cmova r12, rax
cmp r8b, 2
jne 0x1400836ba
test rcx, rcx
je 0x1400836ba
mov rcx, qword [rdi + 8]
movzx r13d, r14b
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x1400836bd
xor r13b, r13b
test r12, r12
js 0x1400837d8
mov rcx, r12
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x1400837d8
mov byte [rdi + 0x20], 2
and byte [rdi + 0x21], 0x7f
mov qword [rdi + 0x18], r12
mov qword [rdi + 8], rax
lea r12, [0x140103674]
mov rcx, qword [rdi + 8]
cmp rcx, r12
je 0x140083705
lea r8, [r15 + r15]
mov rdx, r12
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rdi + 8]
lea rcx, [r15 + r15]
xor edx, edx
mov word [rcx + rax], dx
mov qword [rdi + 0x10], rcx
lea r15, [0x140141fa8]
movzx r13d, byte [rsp + 0x50]
test dword [rbp - 0x20], 0x200
je 0x140083874
test r13b, r13b
je 0x14008384c
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp + 0x1a30]
repne scasw ax, word [rdi]
not rcx
cmp word [rbp + rcx*2 + 0x1a30], ax
jne 0x14008381e
mov r13d, 0x5c
lea rcx, [rbp + 0x1a30]
mov edx, r13d
call qword [sym.imp.MSVCR100.dll_wcsrchr]
mov r12, rax
test rax, rax
je 0x140083874
mov ecx, 0xa
mov word [rax], cx
lea rax, [rbp + 0x1a30]
mov rcx, r12
sub rcx, rax
and rcx, 0xfffffffffffffffe
cmp rcx, 4
jne 0x140083874
cmp word [r12 - 2], 0x3a
jne 0x140083874
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r12
repne scasw ax, word [rdi]
mov rdx, r12
not rcx
lea r8, [rcx + rcx]
lea rcx, [r12 + 2]
call qword [sym.imp.MSVCR100.dll_memmove]
mov word [r12], r13w
jmp 0x140083874
lea r15, [0x140141fa8]
test r13b, r13b
je 0x1400837f0
xor eax, eax
mov qword [rdi + 8], r15
mov qword [rdi + 0x18], rax
jmp 0x1400837fb
mov rax, qword [rdi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rdi + 0x10], rax
call fcn.14005f7b0
jmp 0x14008371e
lea rax, [rbp + 0x1a30]
mov ecx, 0xa
nop word [rax + rax]
cmp word [rax], 0
je 0x140083840
add rax, 2
cmp word [rax], 0
jne 0x140083836
cmp word [rax + 2], 0
je 0x140083874
mov word [rax], cx
jmp 0x140083830
lea rax, [rbp + 0x1a30]
mov ecx, 0xa
cmp word [rax], 0
je 0x14008386a
nop
add rax, 2
cmp word [rax], 0
jne 0x140083860
cmp word [rax + 2], 0
mov word [rax], cx
jne 0x140083858
movzx edx, byte [rsi + 0x23]
test dl, dl
jne 0x1400838a0
mov rcx, qword [rsi + 0x10]
lea rdx, [rbp + 0x1a30]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], r14b
call fcn.1400e6e20
mov r14d, eax
jmp 0x140083b53
lea rax, [rbp + 0x1a30]
cmp qword [rsi + 8], rax
jne 0x1400838b6
mov r12, qword [rsi + 0x10]
shr r12, 1
jmp 0x1400838cd
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0x1a30]
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea r12, [rcx - 1]
lea rax, [r12 + 1]
lea rdi, [rax + rax]
cmp dl, 2
jne 0x1400838f2
lea rcx, [rbp + 0x1a30]
mov rdx, r12
call fcn.140006bc0
mov r14d, eax
jmp 0x140083b53
cmp rdi, qword [0x14013b0d0]
jbe 0x140083923
cmp rdi, qword [rsi + 0x18]
jbe 0x140083923
lea r8, [0x1401035ac]
lea rdx, [0x140124720]
lea rcx, [0x140143150]
call fcn.14005f7b0
mov r14d, eax
jmp 0x140083b53
cmp rax, 2
movzx eax, byte [rsi + 0x21]
jae 0x140083995
test al, 2
je 0x14008393f
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
xor edi, edi
dec ecx
mov qword [rsi + 0x10], rdi
je 0x140083989
dec ecx
jne 0x140083b53
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x140083b53
cmp rax, 0x1000
jbe 0x140083989
mov rcx, qword [rsi + 8]
call qword [sym.imp.MSVCR100.dll_free]
and byte [rsi + 0x21], 0x7f
mov qword [rsi + 0x18], rdi
mov qword [rsi + 8], r15
jmp 0x140083b53
mov rax, qword [rsi + 8]
mov word [rax], di
jmp 0x140083b53
test al, 2
je 0x1400839a7
mov rcx, qword [rsi]
and al, 0x3d
mov byte [rsi + 0x21], al
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [rsi + 0x18]
and byte [rsi + 0x21], 0x82
cmp rdi, rcx
jbe 0x140083b20
movzx r8d, byte [rsi + 0x20]
movzx eax, r8b
cmp r8b, r14b
jbe 0x1400839d9
cmp al, 2
je 0x140083a16
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x58]
jmp 0x140083b14
cmp rdi, 0x80
ja 0x140083a16
cmp rdi, rbx
jbe 0x1400839f8
mov ebx, 0x80
cmp rdi, 0x10
mov eax, reloc.WSOCK32.dll_recv
cmovbe ebx, eax
mov rcx, rbx
call fcn.1400dd290
test rax, rax
jne 0x140083a0d
mov r14d, eax
jmp 0x140083b53
mov byte [rsi + 0x20], r14b
jmp 0x140083b14
cmp rdi, 0x20
jae 0x140083a26
mov ebx, SafeArrayAllocDescriptor
jmp 0x140083acd
cmp rdi, 0x208
jae 0x140083a39
mov ebx, 0x208
jmp 0x140083acd
cmp rdi, 0x50000
jae 0x140083a89
pxor xmm0, xmm0
cvtsi2sd xmm0, rdi
test rdi, rdi
jns 0x140083a58
addsd xmm0, qword [0x1401279a8]
mulsd xmm0, qword [0x1401279e0]
xor eax, eax
comisd xmm0, xmm6
jbe 0x140083a7f
subsd xmm0, xmm6
comisd xmm0, xmm6
jae 0x140083a7f
movabs rdx, 0x8000000000000000
mov rax, rdx
cvttsd2si rbx, xmm0
add rbx, rax
jmp 0x140083acd
cmp rdi, 0x320000
jae 0x140083a9b
lea rbx, [rdi + 0x8000]
jmp 0x140083acd
cmp rdi, 0xc80000
jae 0x140083ac6
movabs rax, 0x47ae147ae147ae15
mov rbx, rdi
mul rdi
sub rbx, rdx
shr rbx, 1
add rbx, rdx
shr rbx, 6
add rbx, rdi
jmp 0x140083acd
lea rbx, [rdi + 0x20000]
mov rax, qword [0x14013b0d0]
cmp rbx, rax
cmova rbx, rax
cmp r8b, 2
jne 0x140083af6
test rcx, rcx
je 0x140083af6
mov rcx, qword [rsi + 8]
movzx edi, r14b
call qword [sym.imp.MSVCR100.dll_free]
jmp 0x140083af9
xor dil, dil
test rbx, rbx
js 0x140083b85
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_malloc]
test rax, rax
je 0x140083b85
mov byte [rsi + 0x20], 2
and byte [rsi + 0x21], 0x7f
mov qword [rsi + 8], rax
mov qword [rsi + 0x18], rbx
mov rcx, qword [rsi + 8]
lea rax, [rbp + 0x1a30]
cmp rcx, rax
je 0x140083b41
lea r8, [r12 + r12]
lea rdx, [rbp + 0x1a30]
call qword [sym.imp.MSVCR100.dll_memmove]
mov rax, qword [rsi + 8]
lea rcx, [r12 + r12]
xor edx, edx
mov word [rcx + rax], dx
mov qword [rsi + 0x10], rcx
movaps xmm6, xmmword [rsp + 0x21b30]
mov eax, r14d
mov r13, qword [rsp + 0x21b48]
mov rdi, qword [rsp + 0x21b90]
mov r15, qword [rsp + 0x21b40]
add rsp, 0x21b50
pop r14
pop r12
pop rsi
pop rbx
pop rbp
ret
test dil, dil
je 0x140083b96
xor eax, eax
mov qword [rsi + 8], r15
mov qword [rsi + 0x18], rax
jmp 0x140083ba1
mov rax, qword [rsi + 8]
xor ecx, ecx
mov word [rax], cx
xor eax, eax
lea r8, [0x1401035ac]
lea rdx, str.Out_of_memory.
lea rcx, [0x140143150]
mov qword [rsi + 0x10], rax
call fcn.14005f7b0
mov r14d, eax
jmp 0x140083b53