Function at 0x42a9d0
Capabilities:
Create directory
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x440710
mov eax, dword fs:[0]
push eax
sub esp, 0x2d8
mov eax, dword [0x4620f4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
add eax, 0xffffff76
cmp eax, 0x12
ja case.0x42aa18.140
movzx eax, byte [eax + 0x42b170]
jmp dword [eax*4 + 0x42b150]
push 0x451291
lea ecx, [ebp - 0x2a8]
call fcn.004013b0
push str.::20D04FE0_3AEA_1069_A2D8_08002B30309D
lea ecx, [ebp - 0x278]
mov dword [ebp - 4], 0
call fcn.00401480
mov eax, dword [edi + 4]
mov byte [ebp - 4], 1
mov eax, dword [eax + 4]
add eax, 8
add eax, edi
push eax
lea eax, [ebp - 0x2a8]
push eax
push 0
lea eax, [ebp - 0x278]
push eax
push dword [0x4653e8]
call fcn.00429880
add esp, 0x14
lea ecx, [ebp - 0x278]
mov esi, eax
call fcn.00401510
lea ecx, [ebp - 0x2a8]
call fcn.004014e0
mov eax, esi
jmp 0x42b12f
push 0x451292
lea ecx, [ebp - 0x2c0]
call fcn.004013b0
push str.::F02C1A0D_BE21_4350_88B0_7367FC96EF3C
lea ecx, [ebp - 0x248]
mov dword [ebp - 4], 2
call fcn.00401480
mov eax, dword [edi + 4]
mov byte [ebp - 4], 3
mov eax, dword [eax + 4]
add eax, 8
add eax, edi
push eax
lea eax, [ebp - 0x2c0]
push eax
push 0
lea eax, [ebp - 0x248]
push eax
push dword [0x4653e8]
call fcn.00429880
add esp, 0x14
lea ecx, [ebp - 0x248]
mov esi, eax
call fcn.00401510
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 4], 0xffffffff
call fcn.004014e0
test esi, esi
jne 0x42ab77
push 0x451293
lea ecx, [ebp - 0x290]
call fcn.004013b0
push str.::208D2C60_3AEA_1069_A2D7_08002B30309D
lea ecx, [ebp - 0x260]
mov dword [ebp - 4], 4
call fcn.00401480
mov eax, dword [edi + 4]
mov byte [ebp - 4], 5
mov eax, dword [eax + 4]
add eax, 8
add eax, edi
push eax
lea eax, [ebp - 0x290]
push eax
push esi
lea eax, [ebp - 0x260]
push eax
push dword [0x4653e8]
call fcn.00429880
add esp, 0x14
lea ecx, [ebp - 0x260]
mov esi, eax
call fcn.00401510
lea ecx, [ebp - 0x290]
call fcn.004014e0
mov eax, esi
jmp 0x42b12f
push 0x4512b6
lea ecx, [ebp - 0x230]
call fcn.004013b0
push str.::450D8FBA_AD25_11D0_98A8_0800361B1103
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 4], 6
call fcn.00401480
mov eax, dword [edi + 4]
mov byte [ebp - 4], 7
mov eax, dword [eax + 4]
add eax, 8
add eax, edi
push eax
lea eax, [ebp - 0x230]
push eax
push 0
lea eax, [ebp - 0x2d8]
push eax
push dword [0x4653e8]
call fcn.00429880
add esp, 0x14
lea ecx, [ebp - 0x2d8]
mov esi, eax
call fcn.00401510
lea ecx, [ebp - 0x230]
call fcn.004014e0
mov eax, esi
jmp 0x42b12f
mov esi, 0x23
jmp 0x42ac0c
mov esi, 0x1a
jmp 0x42ac0c
mov esi, 0x1c
jmp 0x42ac0c
mov esi, 0x10
lea ecx, [ebp - 0x2e0]
call fcn.0042c5a0
xor eax, eax
mov dword [ebp - 4], 9
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.00405c60
add esp, 0xc
lea eax, [ebp - 0x218]
or esi, 0x8000
push eax
push 0
push 0
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x42b012
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x451710
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x42ad16
push str.Error_occurred_while_opening_the_file.
call fcn.004029e0
add esp, 4
push eax
mov eax, dword [ebp - 0x21c]
push 0x40007
sub esp, 0x18
mov ecx, esp
mov dword [ecx], 0x1e263863
mov dword [ecx + 4], 0xe7e1fea8
mov dword [ecx + 8], 0x4517b8
mov dword [ecx + 0xc], 0x451798
mov dword [ecx + 0x10], 0x6c9
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2dc]
call fcn.00412b70
mov esi, eax
mov byte [ebp - 4], 0xa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, esi
call fcn.00413170
push eax
mov eax, dword [edi + 4]
lea ecx, [edi + 8]
mov eax, dword [eax + 4]
add ecx, eax
call fcn.004030c0
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 9
call fcn.00402f20
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 4], 0xffffffff
call fcn.0042c690
jmp 0x42b12d
cmp eax, 0x104
jbe 0x42ad74
push str.Error_occurred_while_opening_the_file.
call fcn.004029e0
add esp, 4
push eax
mov eax, dword [ebp - 0x21c]
push 0x40007
sub esp, 0x18
mov ecx, esp
mov dword [ecx], 0x1e263868
mov dword [ecx + 4], 0xe7e1fea8
mov dword [ecx + 8], 0x451898
mov dword [ecx + 0xc], 0x451878
mov dword [ecx + 0x10], 0x6ce
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2dc]
call fcn.00412b70
mov byte [ebp - 4], 0xb
jmp 0x42acdf
mov ax, word [ebp - 0x218]
xor edx, edx
xor esi, esi
movzx ecx, ax
test ax, ax
je 0x42b040
jmp 0x42ad90
movzx ebx, word [ebp + esi*2 - 0x216]
inc esi
mov eax, ebx
cmp cx, 0x3a
je 0x42adad
cmp cx, 0x5c
je 0x42adad
cmp cx, 0x2f
jne 0x42adb8
cmp eax, 0x5c
je 0x42adb8
cmp eax, 0x2f
cmovne edx, esi
mov ecx, ebx
test cx, cx
jne 0x42ad90
test edx, edx
je 0x42b040
lea eax, [edx + 0xb]
cmp eax, 0x104
jbe 0x42ae28
push str.Error_occurred_while_opening_the_file.
call fcn.004029e0
add esp, 4
push eax
mov eax, dword [ebp - 0x21c]
push 0x40007
sub esp, 0x18
mov ecx, esp
mov dword [ecx], 0x1e263882
mov dword [ecx + 4], 0xe7e1fea8
mov dword [ecx + 8], 0x451a58
mov dword [ecx + 0xc], 0x4519e4
mov dword [ecx + 0x10], 0x6e8
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2dc]
call fcn.00412b70
mov byte [ebp - 4], 0xd
jmp 0x42acdf
lea eax, [edx + edx]
mov ecx, str.All_Users_
sub eax, ecx
lea edx, [ebp - 0x218]
add edx, eax
lea ebx, [ebx]
movzx eax, word [ecx]
mov word [ecx + edx], ax
add ecx, 2
test ax, ax
jne 0x42ae40
mov cx, word [0x463454]
mov esi, 0xffff
cmp cx, si
jne 0x42ae9a
push 0x463454
push 0x42b340
push 0x10
push str.shell32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
mov cx, word [0x463454]
cmp cx, si
jne 0x42ae9a
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov cx, ax
mov word [0x463454], cx
lea esi, [ebp - 0x218]
lea edx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x42aea3
movzx eax, cx
sub esi, edx
push eax
sar esi, 1
call fcn.00427cf0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x42af30
push 0x409
call fcn.00427cf0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x42af30
push str.Error_occurred_while_opening_the_file.
call fcn.004029e0
add esp, 4
push eax
mov eax, dword [ebp - 0x21c]
push 0x40007
sub esp, 0x18
mov ecx, esp
mov dword [ecx], 0x1e263893
mov dword [ecx + 4], 0xe7e1fea8
mov dword [ecx + 8], 0x451ad0
mov dword [ecx + 0xc], 0x451ab0
mov dword [ecx + 0x10], 0x6f9
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2dc]
call fcn.00412b70
mov esi, eax
mov byte [ebp - 4], 0xe
jmp 0x42acd1
movzx edx, word [ecx]
mov eax, 3
add ecx, 2
jmp 0x42af40
lea ecx, [ecx + edx*2]
movzx edx, word [ecx]
add ecx, 2
dec eax
jne 0x42af40
lea ebx, [edx + esi]
cmp ebx, 0x104
jb 0x42afc5
push str.Error_occurred_while_opening_the_file.
call fcn.004029e0
add esp, 4
push eax
mov eax, dword [ebp - 0x21c]
push 0x40007
sub esp, 0x18
mov ecx, esp
mov dword [ecx], 0x1e2638a3
mov dword [ecx + 4], 0xe7e1fea8
mov dword [ecx + 8], 0x451b40
mov dword [ecx + 0xc], str.win32_shell_dir::OpenSpecialDir
mov dword [ecx + 0x10], 0x709
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2e4]
call fcn.00412b70
push eax
mov eax, dword [edi + 4]
lea ecx, [edi + 8]
mov byte [ebp - 4], 0xf
mov eax, dword [eax + 4]
add ecx, eax
call fcn.004030c0
lea ecx, [ebp - 0x2e4]
jmp 0x42acf6
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x218]
push ecx
lea eax, [eax + esi*2]
push eax
call fcn.00405610
add ebx, ebx
add esp, 0xc
cmp ebx, 0x208
jae 0x42b03b
xor eax, eax
lea ecx, [ebp - 0x218]
mov word [ebp + ebx - 0x218], ax
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x14]
mov esi, eax
test esi, esi
jne 0x42b022
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [edi]
lea ecx, [ebp - 0x218]
push ecx
mov ecx, edi
call dword [eax + 0x14]
mov esi, eax
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 4], 0xffffffff
call fcn.0042c690
mov eax, esi
jmp 0x42b12f
call fcn.00408487
push str.Error_occurred_while_opening_the_file.
call fcn.004029e0
add esp, 4
push eax
mov eax, dword [ebp - 0x21c]
push 0x40007
sub esp, 0x18
mov ecx, esp
mov dword [ecx], 0x1e26387a
mov dword [ecx + 4], 0xe7e1fea8
mov dword [ecx + 8], 0x451978
mov dword [ecx + 0xc], 0x451958
mov dword [ecx + 0x10], 0x6e0
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2dc]
call fcn.00412b70
mov byte [ebp - 4], 0xc
jmp 0x42acdf
push str.The_operation_is_not_supported.
call fcn.004029e0
add esp, 4
push eax
mov eax, dword [ebp - 0x21c]
push 0x4000e
sub esp, 0x18
mov ecx, esp
mov dword [ecx], 0x1e263853
mov dword [ecx + 4], 0xe7e1fea8
mov dword [ecx + 8], 0x451688
mov dword [ecx + 0xc], 0x451608
mov dword [ecx + 0x10], 0x6b9
mov dword [ecx + 0x14], eax
lea ecx, [ebp - 0x2dc]
call fcn.00412b70
push eax
mov eax, dword [edi + 4]
lea ecx, [edi + 8]
mov dword [ebp - 4], 8
mov eax, dword [eax + 4]
add ecx, eax
call fcn.004030c0
mov ecx, dword [ebp - 0x2dc]
mov dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x42b12d
mov edi, edi
or eax, 0xffffffff
lock xadd dword [ecx], eax
jne 0x42b12d
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 8]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
mov ecx, esi
test esi, esi
jne 0x42b110
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004051a4
mov esp, ebp
pop ebp
ret 4