Function at 0x4013e8
Capabilities:
Create directory
Delete directory
Enumerate gui resources
Get common file path
Identify system language via api
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x360
mov eax, dword [ebp + 8]
mov dword [0x40547c], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
and eax, 0x3ff
lea ecx, [ebp - 0xc]
mov dword [ebp - 0x10], eax
call fcn.00403004
push 0x405340
lea ecx, [ebp - 0xc]
call fcn.0040300a
test eax, eax
je 0x401474
push 1
lea ecx, [ebp - 0xc]
call fcn.0040306a
lea ecx, [ebp - 0x28]
call fcn.00403090
push 0x405330
lea ecx, [ebp - 0x28]
call fcn.004030a7
test eax, eax
je 0x40146c
push 0x2710
lea ecx, [ebp - 0x28]
call fcn.004032b6
test eax, eax
je 0x401464
lea ecx, [ebp - 0x28]
call fcn.004032f7
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x28]
call fcn.004032ad
lea ecx, [ebp - 0x28]
call fcn.004030a6
push ebx
push esi
xor ebx, ebx
push edi
push ebx
push 0x401f28
call dword [sym.imp.USER32.dll_EnumWindows]
push 0x40532c
push dword [ebp + 0x10]
call fcn.004021a8
mov edi, eax
push 0x405328
push dword [ebp + 0x10]
neg edi
sbb edi, edi
neg edi
mov dword [ebp - 8], edi
call fcn.004021a8
add esp, 0x10
neg eax
sbb eax, eax
neg eax
cmp edi, ebx
mov dword [0x405478], eax
jne 0x4014d5
push 0x405324
push dword [ebp + 0x10]
call fcn.004021a8
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [0x405478], eax
call section..text
cmp edi, ebx
mov dword [ebp + 8], eax
mov esi, 0x404158
jne 0x4015ae
cmp eax, ebx
mov edi, 0x40531c
je 0x401503
push 1
push edi
push esi
call fcn.0040259e
add esp, 0xc
test eax, eax
jne 0x401513
push 1
push 0x405310
push esi
call fcn.004025df
add esp, 0xc
push 1
push edi
push esi
call fcn.004025df
add esp, 0xc
mov edi, 0x11f
lea eax, [ebp - 0x360]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp eax, edi
jae 0x4015ae
lea eax, [ebp - 0x360]
push 0x40427c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x360]
push eax
call fcn.00402cfc
add esp, 0xc
test eax, eax
je 0x4015ae
mov eax, dword [ebp - 4]
shr eax, 0x10
cmp ax, 6
jb 0x4015ae
push str._ct
push dword [ebp + 0x10]
call fcn.004021a8
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
je 0x40159d
add edi, 4
movsx eax, byte [edi]
push eax
call fcn.004021d0
test eax, eax
pop ecx
je 0x401598
inc edi
jmp 0x401587
cmp byte [edi], 0x30
je 0x4015ae
push 3
push ebx
push 0x405300
push esi
call fcn.0040260d
add esp, 0x10
lea eax, [ebp - 0x234]
push 0x63
push eax
push 1
push ebx
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jle 0x4015cc
mov byte [ebp - 0x1d1], bl
jmp 0x4015d2
mov byte [ebp - 0x234], bl
cmp dword [ebp - 8], ebx
jne 0x4017ac
cmp dword [ebp + 8], ebx
jne 0x4017ac
mov edi, 0x4052fc
push edi
push dword [ebp + 0x10]
call fcn.004021a8
pop ecx
cmp eax, ebx
pop ecx
jne 0x40161b
cmp byte [ebp - 0x234], bl
je 0x40169d
lea eax, [ebp - 0x234]
push edi
push eax
call fcn.004021a8
pop ecx
cmp eax, ebx
pop ecx
je 0x40169d
push 0x3d
push eax
call fcn.00402108
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp + 8], eax
je 0x40169d
xor edi, edi
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
movsx eax, byte [eax]
push eax
call fcn.004021d0
test eax, eax
pop ecx
jne 0x401668
mov eax, dword [ebp + 8]
mov al, byte [edi + eax]
cmp al, 0x2f
je 0x401663
cmp al, bl
je 0x401663
mov eax, dword [ebp + 8]
inc edi
movsx eax, byte [edi + eax]
push eax
call fcn.004021d0
test eax, eax
pop ecx
je 0x401642
cmp edi, 0x64
jae 0x40169d
inc edi
lea eax, [ebp - 0x1d0]
push edi
push dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push ebx
push ebx
push str.pid2
push esi
call fcn.00402830
lea eax, [ebp - 0x1d0]
push ebx
push eax
push 0x405058
push esi
call fcn.00402830
add esp, 0x20
push 0x4052ec
push dword [ebp + 0x10]
call fcn.004021a8
neg eax
sbb eax, eax
neg eax
push eax
push 0x4052e8
push esi
call fcn.004025df
add esp, 0x14
mov dword [ebp - 0x34], str._mwsask
mov dword [ebp - 0x30], str._ap
mov dword [ebp - 0x2c], str._psid
mov dword [ebp - 0x1c], 0x4052c4
mov dword [ebp - 0x18], 0x4052c0
mov dword [ebp - 0x14], 0x4052b8
mov dword [ebp + 8], ebx
mov eax, dword [ebp + 8]
push dword [ebp + eax - 0x34]
push dword [ebp + 0x10]
call fcn.004021a8
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
je 0x401770
mov eax, dword [ebp + 8]
mov dword [ebp - 4], ebx
push dword [ebp + eax - 0x34]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add edi, eax
movsx eax, byte [edi]
push eax
call fcn.004021d0
test eax, eax
pop ecx
jne 0x40174c
mov eax, dword [ebp - 4]
mov al, byte [eax + edi]
cmp al, 0x2f
je 0x401746
cmp al, bl
je 0x401746
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
movsx eax, byte [eax + edi]
push eax
call fcn.004021d0
test eax, eax
pop ecx
je 0x401723
cmp dword [ebp - 4], 0x64
jae 0x40179e
mov eax, dword [ebp - 4]
inc eax
push eax
lea eax, [ebp - 0x1d0]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x1d0]
push ebx
push eax
mov eax, dword [ebp + 8]
push dword [ebp + eax - 0x1c]
jmp 0x401795
mov eax, dword [ebp + 8]
cmp eax, ebx
jle 0x40179e
mov edi, dword [ebp + eax - 0x1c]
lea eax, [ebp - 0x1d0]
push 0x64
push eax
push edi
push esi
call fcn.0040263e
add esp, 0x10
test eax, eax
je 0x40179e
push ebx
push ebx
push edi
push esi
call fcn.00402830
add esp, 0x10
add dword [ebp + 8], 4
cmp dword [ebp + 8], 0xc
jb 0x4016ec
push ebx
push ebx
push 0x4052b4
push esi
call fcn.00402830
add esp, 0x10
cmp dword [ebp - 8], ebx
jne 0x4018dc
push 0x4052b0
push dword [ebp + 0x10]
call fcn.004021a8
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
je 0x40186c
mov al, byte [edi + 3]
add edi, 3
cmp al, 0x27
mov dword [ebp + 8], ebx
je 0x40181c
cmp al, 0x22
je 0x40181c
movsx eax, al
push eax
call fcn.004021d0
test eax, eax
pop ecx
jne 0x40183b
mov eax, dword [ebp + 8]
cmp byte [eax + edi], bl
je 0x401835
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
movsx eax, byte [eax + edi]
push eax
call fcn.004021d0
test eax, eax
pop ecx
je 0x4017fd
jmp 0x401835
mov cl, byte [edi + 1]
inc edi
cmp al, cl
je 0x40183b
cmp cl, bl
je 0x401835
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov cl, byte [ecx + edi]
cmp al, cl
jne 0x401824
cmp dword [ebp + 8], 0x64
jae 0x401866
mov eax, dword [ebp + 8]
inc eax
push eax
lea eax, [ebp - 0x1d0]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x1d0]
push ebx
push eax
push 0x4052b4
push esi
call fcn.00402830
add esp, 0x10
jmp 0x401868
xor edi, edi
cmp edi, ebx
jne 0x401880
push ebx
push str.My_Web_Search__PopSwatter_
push 0x4052b4
push esi
call fcn.00402830
add esp, 0x10
mov edi, 0x40528c
push edi
push dword [ebp + 0x10]
call fcn.004021a8
pop ecx
cmp eax, ebx
pop ecx
jne 0x4018af
cmp byte [ebp - 0x234], bl
je 0x4018dc
lea eax, [ebp - 0x234]
push edi
push eax
call fcn.004021a8
pop ecx
cmp eax, ebx
pop ecx
je 0x4018dc
add eax, 4
push eax
call fcn.00402209
cmp eax, ebx
pop ecx
mov dword [ebp + 0x10], eax
je 0x4018dc
mov edi, 0x405284
push eax
push edi
push esi
call fcn.004025df
push 3
push dword [ebp + 0x10]
push edi
push esi
call fcn.0040260d
add esp, 0x1c
mov al, byte [0x405480]
push 0x4a
mov byte [ebp - 0x16c], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x16b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 8]
push ebx
neg eax
sbb eax, eax
push 0x404160
and eax, 2
push esi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ebx
call fcn.0040259e
add esp, 0xc
cmp dword [ebp - 8], ebx
mov dword [ebp + 0x10], eax
jne 0x401921
inc dword [ebp + 0x10]
push ebx
lea eax, [ebp - 0x16c]
push 0xfa
push eax
push ebx
push ebx
push 0x40415c
push esi
call fcn.00402d74
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
test eax, eax
je 0x401ce1
cmp byte [ebp - 0x16c], bl
je 0x401ce1
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push dword [ebp + 0x10]
lea eax, [ebp + eax - 0x16c]
mov dword [ebp + 8], eax
push 0x40417c
push eax
call edi
push 0x405248
call fcn.00401173
push 0x40520c
call fcn.00401173
push 0x4051d0
call fcn.00401173
push 0x405194
call fcn.00401173
add esp, 0x1c
cmp dword [ebp - 8], ebx
jne 0x401a1b
lea eax, [ebp - 0x16c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x401a1b
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 5]
cmp eax, ecx
jge 0x401a1b
inc eax
mov dword [ebp - 4], eax
push eax
push 0x40417c
push dword [ebp + 8]
call edi
add esp, 0xc
lea eax, [ebp - 0x16c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4019fd
mov eax, dword [ebp + 0x10]
add eax, 5
cmp dword [ebp - 4], eax
jg 0x401a03
inc dword [ebp - 4]
push dword [ebp - 4]
jmp 0x4019cb
mov eax, dword [ebp - 4]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 4]
cmp dword [ebp + 0x10], eax
je 0x401a1b
push dword [ebp + 0x10]
push 0x40417c
push dword [ebp + 8]
call edi
add esp, 0xc
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jl 0x401ce1
mov edi, dword [sym.imp.KERNEL32.dll_EnumResourceNamesA]
mov dword [ebp - 0x3c], ebx
lea eax, [ebp - 0x16c]
push eax
push 0x401d74
push str.PART
push dword [0x40547c]
call edi
mov ecx, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x3c], ebx
setne al
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x404234]
cmp eax, 4
mov dword [ebp - 0x40], eax
jne 0x401a33
cmp dword [ebp - 0x3c], ebx
jne 0x401cd5
cmp dword [ebp - 8], ebx
jne 0x401c68
push ebx
push ebx
push 0x40416c
push esi
call fcn.00402830
push 3
push ebx
push ebx
push 0x40416c
push esi
call fcn.0040284b
push dword [ebp + 0x10]
push 0x404160
push esi
call fcn.004025df
add esp, 0x30
dec dword [ebp + 0x10]
push str.Avatar_
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x16c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
lea eax, [ebp - 0x16c]
push eax
push 0x401d74
push str.AVATAR
push dword [0x40547c]
call edi
mov ecx, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x3c], ebx
setne al
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x404234]
cmp eax, 4
mov dword [ebp - 0x40], eax
jne 0x401acd
push str.Message_
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x16c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
lea eax, [ebp - 0x16c]
push eax
push 0x401d74
push str.MESSAGE
push dword [0x40547c]
call edi
mov ecx, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x3c], ebx
setne al
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x404234]
cmp eax, 4
mov dword [ebp - 0x40], eax
jne 0x401b25
push str.Notifier_
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x16c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
lea eax, [ebp - 0x16c]
push eax
push 0x401d74
push str.NOTIFIER
push dword [0x40547c]
call edi
mov ecx, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x3c], ebx
setne al
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x404234]
cmp eax, 4
mov dword [ebp - 0x40], eax
jne 0x401b7d
push str.Game_
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x16c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
lea eax, [ebp - 0x16c]
push eax
push 0x401d74
push str.GAME
push dword [0x40547c]
call edi
mov ecx, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x3c], ebx
setne al
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x404234]
cmp eax, 4
mov dword [ebp - 0x40], eax
jne 0x401bd5
push str.icons_
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x16c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
lea eax, [ebp - 0x16c]
push eax
push 0x401d74
push str.ICONFILE
push dword [0x40547c]
call edi
mov ecx, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x3c], ebx
setne al
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x404234]
cmp eax, 4
mov dword [ebp - 0x40], eax
jne 0x401c2d
call fcn.00401230
cmp dword [ebp + 0x10], ebx
jle 0x401cd2
push dword [ebp + 0x10]
push 0x40417c
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
je 0x401ccd
lea eax, [ebp - 0x16c]
mov dword [ebp - 0x3c], ebx
push eax
push 0x401d74
push str.PART
mov dword [ebp - 0x40], 3
push dword [0x40547c]
call edi
push 0x405130
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
dec dword [ebp + 0x10]
jmp 0x401c68
mov dword [ebp - 0x3c], ebx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
cmp dword [0x405478], ebx
jne 0x401d2d
cmp dword [ebp - 8], ebx
mov ecx, 0x4052b4
jne 0x401cf8
mov ecx, 0x405480
cmp dword [ebp - 0x3c], ebx
mov eax, str.The_My_Web_Search_Bar_has_been_successfully__sinstalled
je 0x401d07
mov eax, str.Failed_to__sinstall_the_My_Web_Search_Bar
push ecx
push eax
lea eax, [ebp - 0x1d0]
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x1d0]
push 0x1000
push str.My_Web_Search_Bar_Installer
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebp - 8], ebx
jne 0x401d37
call fcn.00401060
lea ecx, [ebp - 0xc]
call fcn.00403055
push dword [ebp - 0x3c]
push 0x405110
push esi
call fcn.004025df
movzx eax, word [ebp - 0x10]
push eax
push 0x40510c
push esi
call fcn.004025df
mov esi, dword [ebp - 0x3c]
add esp, 0x18
lea ecx, [ebp - 0xc]
call fcn.004030a6
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10