Function at 0x1800289d0
Capabilities:
Create thread
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x510]
sub rsp, 0x610
mov rax, qword [0x18003ca28]
xor rax, rsp
mov qword [rbp + 0x500], rax
mov edi, ecx
mov dword [rsp + 0x40], ecx
movdqa xmm0, xmmword [0x180035410]
movdqa xmmword [rbp + 0x1c0], xmm0
mov byte [rbp + 0x1b0], 0
movdqa xmm1, xmm0
movdqa xmmword [rbp + 0x1e0], xmm0
mov byte [rbp + 0x1d0], 0
movdqa xmmword [rbp + 0x200], xmm0
mov byte [rbp + 0x1f0], 0
movdqa xmmword [rbp + 0x230], xmm0
mov byte [rbp + 0x220], 0
movdqa xmmword [rbp + 0x250], xmm0
mov byte [rbp + 0x240], 0
xor ecx, ecx
mov qword [rbp + 0x50], rcx
mov word [rbp + 0x58], cx
movdqu xmmword [rbp + 0x6a], xmm0
mov byte [rbp + 0x5a], cl
mov qword [rbp + 0x20], rcx
mov word [rbp + 0x28], cx
movdqu xmmword [rbp + 0x3a], xmm0
mov byte [rbp + 0x2a], cl
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rcx
movdqa xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x50], rcx
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x88], rcx
mov qword [rbp + 0x90], rcx
mov ecx, 0x30
call fcn.18002d124
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp + 0x88], rax
xor r8d, r8d
mov qword [rbp + 0x98], r8
xorps xmm2, xmm2
movsd qword [rbp + 0xa0], xmm2
mov qword [rbp + 0xa8], r8
mov dword [rbp + 0xb0], 1
mov qword [rbp + 0xb8], r8
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xc0], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0xd0], xmm1
movdqa xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], r8
mov qword [rbp + 0xf8], 0xffffffffffffffff
mov dword [rbp + 0x100], r8d
xor eax, eax
movups xmmword [rbp + 0x108], xmm0
movups xmmword [rbp + 0x118], xmm0
movups xmmword [rbp + 0x128], xmm0
movups xmmword [rbp + 0x138], xmm0
mov qword [rbp + 0x148], rax
movdqa xmm0, xmmword [0x180035410]
movdqa xmmword [rbp + 0x160], xmm0
mov byte [rbp + 0x150], al
mov word [rbp + 0x170], r8w
mov dword [rbp + 0x174], r8d
mov qword [rbp + 0x178], r8
xorps xmm0, xmm0
movaps xmmword [rbp + 0x180], xmm0
movsd qword [rbp + 0x190], xmm2
mov byte [rbp + 0x198], al
mov qword [rbp + 0x19c], r8
lea edx, [rdi + 0x11]
mov dword [rsp + 0x34], edx
cmp edi, edx
jae 0x1800293db
lea ebx, [rdi - 0x64]
mov dword [rsp + 0x38], ebx
lea r9, [0x180000000]
lea r11d, [r8 + 0x70]
movabs r10, 0x6e006100430020
mov ebx, dword [rsp + 0x48]
movzx r12d, byte [rsp + 0x30]
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x48]
movzx r13d, byte [rsp + 0x30]
mov edx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x34]
cmp edx, 0x20
ja case.default.0x180028c1c
mov eax, edx
mov ecx, dword [r9 + rax*4 + 0x296a4]
add rcx, r9
jmp rcx
mov byte [rbp + 0x263], 0
mov r8d, 5
lea rdx, [0x180034302]
lea rcx, [rbp + 0x263]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
jmp 0x18002939f
lea rax, [rbp + 0x20]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x78]
cmp rax, qword [rbp - 0x80]
je 0x180028c67
lea rcx, [rbp + 0x20]
mov qword [rax], rcx
add qword [rsp + 0x78], 8
jmp 0x180028c7b
lea r8, [rsp + 0x58]
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x70]
call fcn.180001b80
mov eax, dword [0x1800391e0]
mov dword [rsp + 0x40], eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x70]
mov ecx, 0xbe
call fcn.18000d670
xor r8d, r8d
mov dword [rsp + 0x58], r8d
jmp 0x1800293a2
mov eax, 0x1bb
mov word [rbp + 0x210], ax
lea r8, [rbp + 0x1f0]
mov edx, 0x4c
xor ecx, ecx
call fcn.180013e30
mov byte [rsp + 0x30], 1
jmp 0x18002939f
movzx eax, word [0x18003435f]
mov word [rbp + 0x260], ax
movzx eax, byte [0x180034361]
mov byte [rbp + 0x262], al
jmp case.0x180028c1c.1
lea rax, [rsp + 0x70]
mov qword [rbp - 0x10], rax
mov eax, dword [0x1800391e0]
mov dword [rbp - 8], eax
mov eax, dword [0x1800391e4]
mov dword [rbp - 4], eax
movaps xmm0, xmmword [rbp - 0x10]
movdqa xmmword [rbp], xmm0
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x20], r8d
lea r9, [rbp]
lea r8, [0x180012d50]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbp - 0x38], rax
xor r8d, r8d
mov edx, r8d
movzx ecx, byte [rsp + 0x30]
cmp qword [rbp - 0x40], rdx
cmovne edx, ecx
mov byte [rsp + 0x30], dl
jmp 0x1800293a2
lea rax, [0x1800073d0]
mov qword [rsp + 0x40], rax
lea r9, [rsp + 0x40]
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 0x29]
call fcn.180005050
lea r9, [rbp + 0x80]
mov r8d, 0x63
lea rdx, [0x180039130]
lea rcx, [rsp + 0x70]
call fcn.180005050
xor r9d, r9d
lea r8d, [r9 + 0x75]
lea rdx, [rbp + 0x80]
xor ecx, ecx
call fcn.180019490
jmp 0x18002939f
mov edx, 0x85
lea rcx, str.STATIC_SSID
call fcn.180016070
mov qword [0x18003cb68], rax
jmp 0x18002939f
lea rax, [rbp + 0x3f0]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x58]
mov r8, qword [rbp - 0x30]
mov edx, dword [rsp + 0x64]
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
cmp byte [rsp + 0x30], 0
je 0x18002939f
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
jmp 0x18002939f
lea rdx, [0x180039138]
mov ecx, 0x115
call fcn.18002b650
test al, al
jne 0x180028ee0
mov edi, 0x20
nop
cmp edi, 0x134
ja 0x180028ea0
je 0x180028e6a
mov eax, edi
sub eax, 0x20
je 0x180028e65
sub eax, 0x5c
je 0x180028e5c
cmp eax, 0x5c
jne 0x180028ecd
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.dbghelp.dll_SymInitialize]
mov dword [rsp + 0x60], eax
xor eax, eax
mov qword [rbp + 0x10], rax
mov dword [rbp + 0x18], eax
jmp 0x180028ecd
mov rsi, 0xffffffffffffffff
jmp 0x180028ecd
mov r12b, 1
jmp 0x180028ecd
xor ecx, ecx
movzx eax, r12b
cmp dword [rsp + 0x60], ecx
cmovne ecx, eax
movzx r12d, cl
test cl, cl
je 0x180028ecd
mov r8d, 0x104
lea rdx, [rbp + 0x2e0]
mov rcx, rsi
call qword [sym.imp.dbghelp.dll_SymGetSearchPath]
mov rcx, rsi
call qword [sym.imp.dbghelp.dll_SymCleanup]
jmp 0x180028ecd
mov eax, edi
sub eax, 0x190
je 0x180028ec0
sub eax, 0x5c
je 0x180028eb9
cmp eax, 0x5c
je case.0x18002906a.28
jmp 0x180028ecd
mov ebx, 1
jmp 0x180028ecd
mov edx, dword [rbp + 0x18]
lea rcx, [rbp + 0x10]
call qword [sym.imp.ADVAPI32.dll_GetSidSubAuthority]
add edi, 0x5c
cmp edi, 0x2a4
jb 0x180028e20
mov edi, dword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
jmp 0x18002939f
lea r9, [rsp + 0x70]
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 9]
call fcn.180011190
lea rax, [rbp + 0x50]
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x78]
cmp rdx, qword [rbp - 0x80]
je 0x180028f2b
lea rax, [rbp + 0x50]
mov qword [rdx], rax
add qword [rsp + 0x78], 8
jmp 0x18002939f
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.180001b80
jmp 0x18002939f
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rbp - 0x40], rax
jmp 0x18002939f
mov byte [rbp + 0x268], 0
mov r8d, 2
lea rdx, [0x180034398]
lea rcx, [rbp + 0x260]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
jmp 0x18002939f
mov eax, 0x1bb
mov word [rsp + 0x40], ax
lea r9, [rsp + 0x40]
mov r8d, 0xd1
lea rdx, [rbp + 0x20]
lea rcx, [0x1800391b8]
call fcn.180011fc0
xor r8d, r8d
mov qword [rbp - 0x30], r8
jmp 0x1800293a2
mov r9d, 0x133
lea r8, [rbp + 0x220]
lea rdx, [rbp + 0x1b0]
xor ecx, ecx
call fcn.180016350
mov dword [rsp + 0x64], 0x36
mov eax, 0x1bb
mov word [rsp + 0x40], ax
lea r9, [0x180039198]
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0x50]
mov ecx, 0x30
call fcn.18001a220
jmp 0x18002939f
lea rax, [rbp + 0x260]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x180029001
lea rdx, [rbp + 0x260]
lea rcx, [rbp + 0x1b0]
call fcn.180020090
mov qword [rbp - 0x28], 0
mov r8d, 1
lea rdx, [0x1800343a0]
lea rcx, [rbp + 0x1d0]
call fcn.180020090
jmp 0x18002939f
mov rax, qword [rbp - 0x38]
test rax, rax
jne 0x180029396
mov edi, r8d
cmp edi, 0x1c
ja case.default.0x18002906a
mov eax, edi
mov ecx, dword [r9 + rax*4 + 0x29728]
add rcx, r9
jmp rcx
mov dword [rbp + 0x29a], 0x72
mov r8d, 1
lea rdx, [0x1800343c2]
lea rcx, [rbp + 0x270]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
xor r8d, r8d
lea r9, [0x180000000]
movabs r10, 0x6e006100430020
mov r11d, 0x70
jmp case.default.0x18002906a
mov r8d, 5
lea rdx, [0x180034412]
lea rcx, [rbp + 0x2b6]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor r8d, r8d
mov word [rbp + 0x2c0], r8w
jmp 0x180029093
mov eax, dword [0x180034454]
mov dword [rbp + 0x274], eax
movzx eax, word [0x180034458]
mov word [rbp + 0x278], ax
jmp case.default.0x18002906a
mov qword [rsp + 0x50], r8
mov r14, r8
mov dword [rsp + 0x6c], 0x36
jmp case.default.0x18002906a
lea r9, [rbp + 0x2a8]
mov r8d, r15d
lea rdx, [rbp + 0x270]
mov rcx, r14
call sub.IMM32.dll_ImmRegisterWordW
mov dword [rsp + 0x48], eax
jmp 0x180029090
mov dword [rbp + 0x2d0], 0x250020
mov word [rbp + 0x2d4], r8w
jmp case.default.0x18002906a
mov r8d, 1
lea rdx, [0x180034492]
lea rcx, [rbp + 0x2a8]
jmp 0x18002908a
mov word [rbp + 0x2ae], r8w
jmp case.default.0x18002906a
mov dword [rbp + 0x290], 0x750020
mov word [rbp + 0x294], r8w
jmp case.default.0x18002906a
mov dword [rsp + 0x68], r8d
jmp case.default.0x18002906a
mov word [rbp + 0x286], r8w
mov r8d, 5
lea rdx, [0x18003451c]
jmp 0x180029083
mov eax, dword [0x180034556]
mov dword [rbp + 0x27a], eax
movzx eax, word [0x18003455a]
mov word [rbp + 0x27e], ax
jmp case.default.0x18002906a
test r13b, r13b
je case.default.0x18002906a
lea r9, [rbp + 0x2a8]
mov r8d, r15d
lea rdx, [rbp + 0x270]
mov rcx, r14
call sub.IMM32.dll_ImmUnregisterWordW
jmp 0x180029090
mov dword [rbp + 0x2aa], 0x3a0073
jmp case.default.0x18002906a
mov r8d, 1
lea rdx, [0x18003458c]
lea rcx, [rbp + 0x2d4]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor r8d, r8d
mov word [rbp + 0x2d6], r8w
mov r13b, 1
jmp 0x180029093
mov dword [rbp + 0x280], 0x20006f
mov word [rbp + 0x284], r11w
jmp case.default.0x18002906a
mov r8d, 4
lea rdx, [0x1800345f8]
lea rcx, [rbp + 0x2c0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor eax, eax
mov word [rbp + 0x2c8], ax
lea r8d, [rax + 2]
lea rdx, [0x18003466e]
lea rcx, [rbp + 0x2a8]
jmp 0x18002908a
mov eax, 0x6f
mov word [rbp + 0x29e], ax
jmp case.default.0x18002906a
mov qword [rbp + 0x2ae], r10
mov word [rbp + 0x2b6], r8w
jmp case.default.0x18002906a
mov word [rbp + 0x2a0], r8w
mov r8d, 1
lea rdx, [0x180034712]
lea rcx, [rbp + 0x270]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
xor r8d, r8d
mov word [rbp + 0x2a8], r8w
jmp 0x180029093
mov ebx, 1
jmp case.default.0x18002906a
mov r8d, 2
lea rdx, [0x180034730]
lea rcx, [rbp + 0x294]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
xor r8d, r8d
mov word [rbp + 0x298], r8w
jmp 0x180029093
mov word [rbp + 0x280], r8w
jmp case.default.0x18002906a
mov qword [rbp - 0x20], r8
mov r15d, 1
jmp case.default.0x18002906a
mov dword [rbp + 0x270], 0x610043
jmp case.default.0x18002906a
mov dword [rbp + 0x2cc], 0x6f0074
jmp case.default.0x18002906a
lea rax, [rbp + 0x2e0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov r9d, dword [rsp + 0x68]
mov r8, qword [rbp - 0x20]
mov edx, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirA]
xor r8d, r8d
mov ecx, r8d
movzx eax, r13b
cmp dword [rsp + 0x48], r8d
cmovne ecx, eax
movzx r13d, cl
jmp 0x180029093
mov dword [rbp + 0x298], 0x61
inc edi
lea eax, [rdi + 0x6d]
cmp eax, 0x8a
jb 0x180029054
mov edi, dword [rsp + 0x40]
mov rax, qword [rbp - 0x38]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r8d, r8d
mov edx, dword [rsp + 0x38]
mov r11d, 0x70
movabs r10, 0x6e006100430020
lea r9, [0x180000000]
mov eax, dword [rsp + 0x34]
inc edi
mov dword [rsp + 0x40], edi
inc edx
mov dword [rsp + 0x38], edx
cmp edi, eax
jae case.0x18002906a.28
jmp 0x180028c06
mov ebx, r8d
jmp case.0x18002906a.28
mov ebx, dword [rsp + 0x48]
lea rcx, [rbp + 0xf8]
call fcn.180003c00
mov rdi, qword [rbp + 0xe0]
test rdi, rdi
je 0x18002946d
mov rsi, qword [rbp + 0xe8]
cmp rdi, rsi
je 0x18002941f
mov rcx, rdi
call fcn.18001b1e0
add rdi, 0x20
cmp rdi, rsi
jne 0x180029407
mov rdi, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0xf0]
sub rdx, rdi
and rdx, 0xffffffffffffffe0
mov rax, rdi
cmp rdx, 0x1000
jb 0x18002944e
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800294ab
mov rcx, rdi
call fcn.18002d160
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xe0], xmm0
xor r14d, r14d
mov qword [rbp + 0xf0], r14
jmp 0x180029470
xor r14d, r14d
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x1800294c9
mov rdx, qword [rbp + 0xd8]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800294b2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800294b2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18002d160
mov qword [rbp + 0xc8], r14
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xd0], xmm0
lea rcx, [rbp + 0x88]
call fcn.180003b30
nop
mov rdi, qword [rbp - 0x78]
test rdi, rdi
je 0x180029564
mov rsi, qword [rbp - 0x70]
cmp rdi, rsi
je 0x180029505
nop dword [rax]
mov rcx, rdi
call fcn.180003440
add rdi, 0x28
cmp rdi, rsi
jne 0x1800294f0
mov rdi, qword [rbp - 0x78]
mov rcx, qword [rbp - 0x68]
sub rcx, rdi
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
mov rax, rdi
cmp rdx, 0x1000
jb 0x180029550
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800295a2
mov rcx, rdi
call fcn.18002d160
mov qword [rbp - 0x78], r14
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x70], xmm0
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1800295bb
mov rax, qword [rbp - 0x80]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800295a9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800295a9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18002d160
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], r14
mov rdx, qword [rbp + 0x42]
cmp rdx, 0x10
jb 0x1800295f9
inc rdx
mov rcx, qword [rbp + 0x2a]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800295f4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800295f4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18002d160
movdqa xmm0, xmmword [0x180035410]
movdqu xmmword [rbp + 0x3a], xmm0
mov byte [rbp + 0x2a], 0
mov rdx, qword [rbp + 0x72]
cmp rdx, 0x10
jb 0x180029648
inc rdx
mov rcx, qword [rbp + 0x5a]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029643
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180029643
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18002d160
movdqa xmm0, xmmword [0x180035410]
movdqu xmmword [rbp + 0x6a], xmm0
mov byte [rbp + 0x5a], 0
lea rcx, [rbp + 0x220]
call fcn.1800037a0
nop
lea rcx, [rbp + 0x1b0]
call fcn.180003850
mov eax, ebx
mov rcx, qword [rbp + 0x500]
xor rcx, rsp
call fcn.18002d670
lea r11, [rsp + 0x610]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret