Function at 0x40b330
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x42af52
mov eax, dword fs:[0]
push eax
mov eax, 0x1a88
mov dword fs:[0], esp
call fcn.00410580
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x324]
mov dword [esp + 0x10], esi
call fcn.004010e0
xor ebx, ebx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1aa0], ebx
call fcn.00401ad0
push 0x104
lea eax, [esp + 0x400]
push eax
mov byte [esp + 0x1aa8], 1
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jbe 0x40b3fc
lea edi, [esp + 0x3fc]
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b3a0
mov cx, word [0x42c8a8]
mov word [edi], cx
lea edi, [esp + 0x3fc]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b3c0
mov edx, dword [0x42d5a4]
mov eax, dword [0x42d5a8]
mov ecx, dword [0x42d5ac]
mov dword [edi], edx
mov dx, word [0x42d5b0]
mov dword [edi + 4], eax
lea eax, [esp + 0x3fc]
mov dword [edi + 8], ecx
push eax
mov word [edi + 0xc], dx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
cmp dword [esi + 0x34a], 1
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
jne 0x40b5bb
lea edi, [esi + 0x33a]
push edi
push 0x7174696d
call fcn.0040e5e0
mov eax, dword [edi]
mov esi, dword [edi]
mov ecx, eax
mov edx, eax
sar ecx, 0x18
sar edx, 0x14
sar eax, 0x10
shr esi, 0x1c
add esp, 8
and ecx, 0xf
and edx, 0xf
and eax, 0xf
test esi, esi
je 0x40b48d
test eax, eax
je 0x40b46b
push eax
push edx
push ecx
push esi
push 0xe79d
call fcn.0040de90
add esp, 4
push eax
lea ecx, [esp + 0x44]
push 0x42d590
push ecx
call ebp
add esp, 0x1c
jmp 0x40b4d2
push edx
push ecx
push esi
push 0xe79d
call fcn.0040de90
add esp, 4
push eax
lea edx, [esp + 0x40]
push 0x42d580
push edx
call ebp
add esp, 0x18
jmp 0x40b4d2
test eax, eax
je 0x40b4b3
push eax
push edx
push ecx
push 0xe79d
call fcn.0040de90
add esp, 4
push eax
lea eax, [esp + 0x40]
push 0x42d580
push eax
call ebp
add esp, 0x18
jmp 0x40b4d2
push edx
push ecx
push 0xe79d
call fcn.0040de90
add esp, 4
push eax
lea ecx, [esp + 0x3c]
push 0x42d574
push ecx
call ebp
add esp, 0x14
lea eax, [esp + 0x30]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b4e0
mov ebp, dword [esp + 0x1aa8]
mov esi, dword [esp + 0x10]
push 1
sub eax, edx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
mov ecx, esi
call fcn.0040b1d0
test ebx, ebx
je 0x40b607
push 0xff
lea eax, [esp + 0x34]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x800]
push ecx
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x24]
call fcn.00402d00
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x30]
push 0x42d570
push eax
call edi
lea eax, [esp + 0x38]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b556
push 1
sub eax, edx
push eax
lea ecx, [esp + 0x38]
push ecx
push ebp
mov ecx, esi
call fcn.0040b1d0
lea edx, [esp + 0xe06]
push edx
push 0xe7a1
call fcn.0040de90
add esp, 4
push eax
lea eax, [esp + 0x38]
push str._s__s
push eax
call edi
lea eax, [esp + 0x40]
add esp, 0x10
lea edx, [eax + 1]
jmp 0x40b5a0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b5a0
push 1
sub eax, edx
push eax
lea ecx, [esp + 0x38]
push ecx
push ebp
mov ecx, esi
call fcn.0040b1d0
jmp 0x40b60d
push 0x710
call fcn.0040de90
add esp, 4
lea edx, [esp + 0x30]
lea esp, [esp]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x40b5d0
lea eax, [esp + 0x30]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b5e1
mov ebp, dword [esp + 0x1aa8]
mov ecx, dword [esp + 0x10]
push 1
sub eax, edx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
call fcn.0040b1d0
mov esi, dword [esp + 0x10]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x30]
push 0x42d570
push eax
call edi
lea eax, [esp + 0x38]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b623
push 1
sub eax, edx
push eax
lea ecx, [esp + 0x38]
push ecx
push ebp
mov ecx, esi
call fcn.0040b1d0
lea ecx, [esp + 0x24]
call fcn.00401ad0
lea edx, [esp + 0x700]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x1aa4], 2
call fcn.004031a0
lea eax, [esp + 0x700]
push eax
lea ecx, [esp + 0x34]
push 0x42d568
push ecx
call edi
lea eax, [esp + 0x3c]
add esp, 0xc
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40b680
push 1
sub eax, ecx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
mov ecx, esi
call fcn.0040b1d0
lea ecx, [esp + 0x20]
call fcn.00401ad0
push 0
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x1aa8], 3
call fcn.00401ae0
lea ecx, [esp + 0x130]
push ecx
push 0x714
call fcn.0040de90
add esp, 4
push eax
lea edx, [esp + 0x38]
push edx
call edi
lea eax, [esp + 0x3c]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40b6e4
sub eax, ecx
push 1
push eax
lea eax, [esp + 0x38]
push eax
push ebp
mov ecx, esi
call fcn.0040b1d0
lea ecx, [esp + 0x30]
push 0x42d570
push ecx
call edi
lea eax, [esp + 0x38]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40b713
push 1
sub eax, ecx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
mov ecx, esi
call fcn.0040b1d0
mov eax, dword [esp + 0x150]
push eax
push 0x715
call fcn.0040de90
add esp, 4
push eax
lea ecx, [esp + 0x38]
push ecx
call edi
lea eax, [esp + 0x3c]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40b753
push 1
sub eax, ecx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
mov ecx, esi
call fcn.0040b1d0
lea eax, [esp + 0x30]
push 0x42d570
push eax
call edi
lea eax, [esp + 0x38]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40b782
mov ebx, dword [esp + 0x10]
sub eax, ecx
push 1
push eax
lea ecx, [esp + 0x38]
push ecx
push ebp
mov ecx, ebx
call fcn.0040b1d0
lea ecx, [esp + 0x28]
call fcn.00403750
lea ecx, [esp + 0x28]
mov byte [esp + 0x1aa0], 4
call fcn.00403790
xor esi, esi
mov edi, eax
test di, di
jle 0x40b8a3
mov dword [esp + 0x10], 1
mov edi, edi
lea edx, [esp + 0xf08]
push edx
push esi
lea ecx, [esp + 0x30]
call fcn.00404da0
cmp di, 1
jne 0x40b80c
push 0x716
call fcn.0040de90
add esp, 4
lea edx, [esp + 0x154]
lea esp, [esp]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x40b800
jmp 0x40b830
mov eax, dword [esp + 0x10]
push eax
push 0x717
call fcn.0040de90
add esp, 4
push eax
lea ecx, [esp + 0x15c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0xe79e
call fcn.0040de90
movzx edx, word [esp + 0xf12]
push eax
movzx eax, word [esp + 0xf14]
push edx
push eax
lea ecx, [esp + 0xf20]
push ecx
lea edx, [esp + 0x168]
push edx
lea eax, [esp + 0x48]
push 0x42d554
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x50]
add esp, 0x20
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b877
push 1
sub eax, edx
push eax
lea ecx, [esp + 0x38]
push ecx
push ebp
mov ecx, ebx
call fcn.0040b1d0
mov ecx, dword [esp + 0x10]
inc esi
inc ecx
cmp si, di
mov dword [esp + 0x10], ecx
jl 0x40b7d0
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x18]
call fcn.00401ad0
lea ecx, [esp + 0x18]
mov byte [esp + 0x1aa0], 5
call fcn.00401970
test ax, ax
mov dword [esp + 0x10], eax
jle 0x40b987
xor esi, esi
movzx edi, ax
push 0
lea edx, [esp + 0x604]
push edx
push esi
lea ecx, [esp + 0x24]
call fcn.004019e0
cmp word [esp + 0x10], 1
jne 0x40b911
push 0x719
call fcn.0040de90
add esp, 4
lea edx, [esp + 0x154]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x40b905
jmp 0x40b934
lea eax, [esi + 1]
push eax
push 0x71a
call fcn.0040de90
add esp, 4
push eax
lea ecx, [esp + 0x15c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x600]
push edx
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x38]
push 0x42d54c
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x40]
add esp, 0x10
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b960
push 1
sub eax, edx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
mov ecx, ebx
call fcn.0040b1d0
inc esi
dec edi
jne 0x40b8d5
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x324]
call fcn.00401390
test ax, ax
mov dword [esp + 0x10], eax
jle 0x40bad9
movzx eax, ax
xor edi, edi
mov dword [esp + 0x14], eax
lea esp, [esp]
push 1
lea ecx, [esp + 0x2b0]
push ecx
push edi
lea ecx, [esp + 0x330]
call fcn.004013d0
cmp word [esp + 0x10], 1
jne 0x40b9ef
push 0x71b
call fcn.0040de90
add esp, 4
lea edx, [esp + 0x154]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x40b9e3
jmp 0x40ba0e
lea edx, [edi + 1]
push edx
push 0x71c
call fcn.0040de90
add esp, 4
push eax
lea eax, [esp + 0x15c]
push eax
call esi
add esp, 0xc
mov ecx, dword [esp + 0x2bc]
mov eax, ecx
shr eax, 8
test al, al
jne 0x40ba43
test cl, cl
jne 0x40ba43
lea ecx, [esp + 0x2fc]
push ecx
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0x38]
push 0x42d0f8
push eax
call esi
add esp, 0x10
jmp 0x40ba73
movzx ecx, cl
push ecx
movzx edx, al
push edx
lea eax, [esp + 0x304]
push eax
lea ecx, [esp + 0x160]
push ecx
push 0x71f
call fcn.0040de90
add esp, 4
push eax
lea edx, [esp + 0x44]
push edx
call esi
add esp, 0x18
lea eax, [esp + 0x30]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ba80
push 1
sub eax, edx
push eax
lea eax, [esp + 0x38]
push eax
push ebp
mov ecx, ebx
call fcn.0040b1d0
lea ecx, [esp + 0x30]
push 0x42d570
push ecx
call esi
lea eax, [esp + 0x38]
add esp, 8
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40bab0
push 1
sub eax, ecx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
mov ecx, ebx
call fcn.0040b1d0
mov eax, dword [esp + 0x14]
inc edi
dec eax
mov dword [esp + 0x14], eax
jne 0x40b9b0
lea ecx, [esp + 0x324]
call fcn.004015d0
test ax, ax
mov dword [esp + 0x14], eax
jle 0x40bc20
movzx eax, ax
xor edi, edi
mov dword [esp + 0x10], eax
jmp 0x40bb00
lea ecx, [esp + 0x254]
push ecx
push edi
lea ecx, [esp + 0x32c]
call fcn.00401610
cmp word [esp + 0x14], 1
jne 0x40bb3d
push 0x71d
call fcn.0040de90
add esp, 4
lea edx, [esp + 0x154]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x40bb31
jmp 0x40bb5c
lea edx, [edi + 1]
push edx
push 0x71e
call fcn.0040de90
add esp, 4
push eax
lea eax, [esp + 0x15c]
push eax
call esi
add esp, 0xc
mov ecx, dword [esp + 0x25c]
mov eax, ecx
shr eax, 8
test al, al
jne 0x40bb91
test cl, cl
jne 0x40bb91
lea ecx, [esp + 0x28c]
push ecx
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0x38]
push 0x42d0f8
push eax
call esi
add esp, 0x10
jmp 0x40bbc1
movzx ecx, cl
push ecx
movzx edx, al
push edx
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x160]
push ecx
push 0x71f
call fcn.0040de90
add esp, 4
push eax
lea edx, [esp + 0x44]
push edx
call esi
add esp, 0x18
lea eax, [esp + 0x30]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bbc8
push 1
sub eax, edx
push eax
lea eax, [esp + 0x38]
push eax
push ebp
mov ecx, ebx
call fcn.0040b1d0
lea ecx, [esp + 0x30]
push 0x42d570
push ecx
call esi
lea eax, [esp + 0x38]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40bbf7
push 1
sub eax, ecx
push eax
lea edx, [esp + 0x38]
push edx
push ebp
mov ecx, ebx
call fcn.0040b1d0
mov eax, dword [esp + 0x10]
inc edi
dec eax
mov dword [esp + 0x10], eax
jne 0x40bb00
push 0xe791
call fcn.0040de90
push eax
lea eax, [esp + 0x508]
push eax
call esi
lea eax, [esp + 0x50c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bc42
push 1
sub eax, edx
push eax
lea ecx, [esp + 0x508]
push ecx
push ebp
mov ecx, ebx
call fcn.0040b1d0
lea ecx, [esp + 0x18]
mov byte [esp + 0x1aa0], 4
call fcn.00401b90
lea ecx, [esp + 0x28]
mov byte [esp + 0x1aa0], 3
call fcn.00403760
lea ecx, [esp + 0x20]
mov byte [esp + 0x1aa0], 2
call fcn.00401b90
lea ecx, [esp + 0x24]
mov byte [esp + 0x1aa0], 1
call fcn.00401b90
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1aa0], 0
call fcn.00401b90
lea ecx, [esp + 0x324]
mov dword [esp + 0x1aa0], 0xffffffff
call fcn.00401190
mov ecx, dword [esp + 0x1a98]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1a94
ret 4