Function at 0x409d30
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [0x4a57cc]
mov dword [ebp - 0xc], eax
push esi
push edi
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 4], 0xffffffff
push 4
lea eax, [ebp - 8]
push eax
push 4
push str.HKLMSoftwareNexonNexon.comIcons
call fcn.00426540
add esp, 0x10
test eax, eax
je 0x409d77
cmp dword [ebp - 8], 0x3039
jne 0x409d77
jmp 0x40a8ad
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x330], ecx
cmp dword [ebp - 0x330], 0x12001
jl 0x409dad
cmp dword [ebp - 0x330], 0x12004
jle 0x409da6
cmp dword [ebp - 0x330], 0x12008
je 0x409da6
jmp 0x409dad
mov dword [ebp - 4], 0
cmp dword [ebp - 4], 0
jl 0x40a8ad
push 1
push 0x26
lea edx, [ebp - 0x220]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
jne 0x409e32
push 0x104
lea eax, [ebp - 0x220]
push eax
push 1
push 0x489390
push 0x4893a0
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00425e70
add esp, 0x18
test eax, eax
jne 0x409e32
mov ecx, dword [0x4893c4]
mov dword [ebp - 0x220], ecx
mov edx, dword [0x4893c8]
mov dword [ebp - 0x21c], edx
mov eax, dword [0x4893cc]
mov dword [ebp - 0x218], eax
mov ecx, dword [0x4893d0]
mov dword [ebp - 0x214], ecx
mov dl, byte [0x4893d4]
mov byte [ebp - 0x210], dl
lea eax, [ebp - 0x220]
add eax, 0xffffffff
mov dword [ebp - 0x334], eax
mov ecx, dword [ebp - 0x334]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x335], dl
inc dword [ebp - 0x334]
cmp byte [ebp - 0x335], 0
jne 0x409e41
mov edi, dword [ebp - 0x334]
mov eax, dword [0x4893d8]
mov dword [edi], eax
mov ecx, dword [0x4893dc]
mov dword [edi + 4], ecx
mov edx, dword [0x4893e0]
mov dword [edi + 8], edx
mov eax, dword [0x4893e4]
mov dword [edi + 0xc], eax
mov cx, word [0x4893e8]
mov word [edi + 0x10], cx
lea edx, [ebp - 0x118]
push edx
call fcn.004266b0
add esp, 4
lea eax, [ebp - 0x328]
push eax
call fcn.004266f0
add esp, 4
lea ecx, [ebp - 0x118]
add ecx, 0xffffffff
mov dword [ebp - 0x33c], ecx
mov edx, dword [ebp - 0x33c]
mov al, byte [edx + 1]
mov byte [ebp - 0x33d], al
inc dword [ebp - 0x33c]
cmp byte [ebp - 0x33d], 0
jne 0x409ebe
mov edi, dword [ebp - 0x33c]
mov cx, word [0x4893ec]
mov word [edi], cx
lea edx, [ebp - 0x328]
add edx, 0xffffffff
mov dword [ebp - 0x344], edx
mov eax, dword [ebp - 0x344]
mov cl, byte [eax + 1]
mov byte [ebp - 0x345], cl
inc dword [ebp - 0x344]
cmp byte [ebp - 0x345], 0
jne 0x409efb
mov edi, dword [ebp - 0x344]
mov edx, dword [str.NexonNexon.com_]
mov dword [edi], edx
mov eax, dword [0x4893f4]
mov dword [edi + 4], eax
mov ecx, dword [0x4893f8]
mov dword [edi + 8], ecx
mov edx, dword [0x4893fc]
mov dword [edi + 0xc], edx
mov ax, word [0x489400]
mov word [edi + 0x10], ax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x34c], ecx
mov edx, dword [ebp - 0x34c]
sub edx, 0x12001
mov dword [ebp - 0x34c], edx
cmp dword [ebp - 0x34c], 9
ja case.0x409f79.4
mov eax, dword [ebp - 0x34c]
jmp dword [eax*4 + 0x40a8bd]
lea ecx, [ebp - 0x220]
add ecx, 0xffffffff
mov dword [ebp - 0x350], ecx
mov edx, dword [ebp - 0x350]
mov al, byte [edx + 1]
mov byte [ebp - 0x351], al
inc dword [ebp - 0x350]
cmp byte [ebp - 0x351], 0
jne 0x409f8f
mov edi, dword [ebp - 0x350]
mov ecx, dword [0x489404]
mov dword [edi], ecx
mov edx, dword [0x489408]
mov dword [edi + 4], edx
mov eax, dword [0x48940c]
mov dword [edi + 8], eax
mov ecx, dword [0x489410]
mov dword [edi + 0xc], ecx
mov edx, dword [0x489414]
mov dword [edi + 0x10], edx
lea eax, [ebp - 0x118]
add eax, 0xffffffff
mov dword [ebp - 0x358], eax
mov ecx, dword [ebp - 0x358]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x359], dl
inc dword [ebp - 0x358]
cmp byte [ebp - 0x359], 0
jne 0x409fed
mov edi, dword [ebp - 0x358]
mov eax, dword [0x489418]
mov dword [edi], eax
mov ecx, dword [0x48941c]
mov dword [edi + 4], ecx
mov dx, word [0x489420]
mov word [edi + 8], dx
mov al, byte [0x489422]
mov byte [edi + 0xa], al
lea ecx, [ebp - 0x328]
add ecx, 0xffffffff
mov dword [ebp - 0x360], ecx
mov edx, dword [ebp - 0x360]
mov al, byte [edx + 1]
mov byte [ebp - 0x361], al
inc dword [ebp - 0x360]
cmp byte [ebp - 0x361], 0
jne 0x40a043
mov edi, dword [ebp - 0x360]
mov ecx, dword [0x489424]
mov dword [edi], ecx
mov edx, dword [0x489428]
mov dword [edi + 4], edx
mov ax, word [0x48942c]
mov word [edi + 8], ax
mov cl, byte [0x48942e]
mov byte [edi + 0xa], cl
mov dword [ebp - 4], 0
jmp case.0x409f79.4
lea edx, [ebp - 0x220]
add edx, 0xffffffff
mov dword [ebp - 0x368], edx
mov eax, dword [ebp - 0x368]
mov cl, byte [eax + 1]
mov byte [ebp - 0x369], cl
inc dword [ebp - 0x368]
cmp byte [ebp - 0x369], 0
jne 0x40a0a6
mov edi, dword [ebp - 0x368]
mov edx, dword [str.GoStopNxGoStop.dll]
mov dword [edi], edx
mov eax, dword [0x489434]
mov dword [edi + 4], eax
mov ecx, dword [0x489438]
mov dword [edi + 8], ecx
mov edx, dword [0x48943c]
mov dword [edi + 0xc], edx
mov eax, dword [0x489440]
mov dword [edi + 0x10], eax
lea ecx, [ebp - 0x118]
add ecx, 0xffffffff
mov dword [ebp - 0x370], ecx
mov edx, dword [ebp - 0x370]
mov al, byte [edx + 1]
mov byte [ebp - 0x371], al
inc dword [ebp - 0x370]
cmp byte [ebp - 0x371], 0
jne 0x40a103
mov edi, dword [ebp - 0x370]
mov ecx, dword [0x489444]
mov dword [edi], ecx
mov edx, dword [0x489448]
mov dword [edi + 4], edx
mov al, byte [0x48944c]
mov byte [edi + 8], al
lea ecx, [ebp - 0x328]
add ecx, 0xffffffff
mov dword [ebp - 0x378], ecx
mov edx, dword [ebp - 0x378]
mov al, byte [edx + 1]
mov byte [ebp - 0x379], al
inc dword [ebp - 0x378]
cmp byte [ebp - 0x379], 0
jne 0x40a14f
mov edi, dword [ebp - 0x378]
mov ecx, dword [0x489450]
mov dword [edi], ecx
mov edx, dword [0x489454]
mov dword [edi + 4], edx
mov al, byte [0x489458]
mov byte [edi + 8], al
mov dword [ebp - 4], 1
jmp case.0x409f79.4
lea ecx, [ebp - 0x220]
add ecx, 0xffffffff
mov dword [ebp - 0x380], ecx
mov edx, dword [ebp - 0x380]
mov al, byte [edx + 1]
mov byte [ebp - 0x381], al
inc dword [ebp - 0x380]
cmp byte [ebp - 0x381], 0
jne 0x40a1a7
mov edi, dword [ebp - 0x380]
mov ecx, dword [str.PokerNxPoker.dll]
mov dword [edi], ecx
mov edx, dword [0x489460]
mov dword [edi + 4], edx
mov eax, dword [0x489464]
mov dword [edi + 8], eax
mov ecx, dword [0x489468]
mov dword [edi + 0xc], ecx
mov dx, word [0x48946c]
mov word [edi + 0x10], dx
lea eax, [ebp - 0x118]
add eax, 0xffffffff
mov dword [ebp - 0x388], eax
mov ecx, dword [ebp - 0x388]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x389], dl
inc dword [ebp - 0x388]
cmp byte [ebp - 0x389], 0
jne 0x40a207
mov edi, dword [ebp - 0x388]
mov eax, dword [0x489470]
mov dword [edi], eax
mov ecx, dword [0x489474]
mov dword [edi + 4], ecx
mov dl, byte [0x489478]
mov byte [edi + 8], dl
lea eax, [ebp - 0x328]
add eax, 0xffffffff
mov dword [ebp - 0x390], eax
mov ecx, dword [ebp - 0x390]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x391], dl
inc dword [ebp - 0x390]
cmp byte [ebp - 0x391], 0
jne 0x40a253
mov edi, dword [ebp - 0x390]
mov eax, dword [0x48947c]
mov dword [edi], eax
mov ecx, dword [0x489480]
mov dword [edi + 4], ecx
mov dl, byte [0x489484]
mov byte [edi + 8], dl
mov dword [ebp - 4], 0
jmp case.0x409f79.4
lea eax, [ebp - 0x220]
add eax, 0xffffffff
mov dword [ebp - 0x398], eax
mov ecx, dword [ebp - 0x398]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x399], dl
inc dword [ebp - 0x398]
cmp byte [ebp - 0x399], 0
jne 0x40a2ab
mov edi, dword [ebp - 0x398]
mov eax, dword [str.OnecardNxOnecard.dll]
mov dword [edi], eax
mov ecx, dword [0x48948c]
mov dword [edi + 4], ecx
mov edx, dword [0x489490]
mov dword [edi + 8], edx
mov eax, dword [0x489494]
mov dword [edi + 0xc], eax
mov ecx, dword [0x489498]
mov dword [edi + 0x10], ecx
mov dx, word [0x48949c]
mov word [edi + 0x14], dx
lea eax, [ebp - 0x118]
add eax, 0xffffffff
mov dword [ebp - 0x3a0], eax
mov ecx, dword [ebp - 0x3a0]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x3a1], dl
inc dword [ebp - 0x3a0]
cmp byte [ebp - 0x3a1], 0
jne 0x40a313
mov edi, dword [ebp - 0x3a0]
mov eax, dword [0x4894a0]
mov dword [edi], eax
mov ecx, dword [0x4894a4]
mov dword [edi + 4], ecx
mov dx, word [0x4894a8]
mov word [edi + 8], dx
mov al, byte [0x4894aa]
mov byte [edi + 0xa], al
lea ecx, [ebp - 0x328]
add ecx, 0xffffffff
mov dword [ebp - 0x3a8], ecx
mov edx, dword [ebp - 0x3a8]
mov al, byte [edx + 1]
mov byte [ebp - 0x3a9], al
inc dword [ebp - 0x3a8]
cmp byte [ebp - 0x3a9], 0
jne 0x40a369
mov edi, dword [ebp - 0x3a8]
mov ecx, dword [0x4894ac]
mov dword [edi], ecx
mov edx, dword [0x4894b0]
mov dword [edi + 4], edx
mov ax, word [0x4894b4]
mov word [edi + 8], ax
mov cl, byte [0x4894b6]
mov byte [edi + 0xa], cl
mov dword [ebp - 4], 0
jmp case.0x409f79.4
lea edx, [ebp - 0x220]
add edx, 0xffffffff
mov dword [ebp - 0x3b0], edx
mov eax, dword [ebp - 0x3b0]
mov cl, byte [eax + 1]
mov byte [ebp - 0x3b1], cl
inc dword [ebp - 0x3b0]
cmp byte [ebp - 0x3b1], 0
jne 0x40a3cc
mov edi, dword [ebp - 0x3b0]
mov edx, dword [str.OmokNxOmok.dll]
mov dword [edi], edx
mov eax, dword [0x4894bc]
mov dword [edi + 4], eax
mov ecx, dword [0x4894c0]
mov dword [edi + 8], ecx
mov edx, dword [0x4894c4]
mov dword [edi + 0xc], edx
lea eax, [ebp - 0x118]
add eax, 0xffffffff
mov dword [ebp - 0x3b8], eax
mov ecx, dword [ebp - 0x3b8]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x3b9], dl
inc dword [ebp - 0x3b8]
cmp byte [ebp - 0x3b9], 0
jne 0x40a421
mov edi, dword [ebp - 0x3b8]
mov eax, dword [0x4894c8]
mov dword [edi], eax
mov ecx, dword [0x4894cc]
mov dword [edi + 4], ecx
mov dl, byte [0x4894d0]
mov byte [edi + 8], dl
lea eax, [ebp - 0x328]
add eax, 0xffffffff
mov dword [ebp - 0x3c0], eax
mov ecx, dword [ebp - 0x3c0]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x3c1], dl
inc dword [ebp - 0x3c0]
cmp byte [ebp - 0x3c1], 0
jne 0x40a46d
mov edi, dword [ebp - 0x3c0]
mov eax, dword [0x4894d4]
mov dword [edi], eax
mov ecx, dword [0x4894d8]
mov dword [edi + 4], ecx
mov dl, byte [0x4894dc]
mov byte [edi + 8], dl
mov dword [ebp - 4], 0
jmp case.0x409f79.4
lea eax, [ebp - 0x220]
add eax, 0xffffffff
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3c8]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x3c9], dl
inc dword [ebp - 0x3c8]
cmp byte [ebp - 0x3c9], 0
jne 0x40a4c5
mov edi, dword [ebp - 0x3c8]
mov eax, dword [str.JangkiNxJangki.dll]
mov dword [edi], eax
mov ecx, dword [0x4894e4]
mov dword [edi + 4], ecx
mov edx, dword [0x4894e8]
mov dword [edi + 8], edx
mov eax, dword [0x4894ec]
mov dword [edi + 0xc], eax
mov ecx, dword [0x4894f0]
mov dword [edi + 0x10], ecx
lea edx, [ebp - 0x118]
add edx, 0xffffffff
mov dword [ebp - 0x3d0], edx
mov eax, dword [ebp - 0x3d0]
mov cl, byte [eax + 1]
mov byte [ebp - 0x3d1], cl
inc dword [ebp - 0x3d0]
cmp byte [ebp - 0x3d1], 0
jne 0x40a522
mov edi, dword [ebp - 0x3d0]
mov edx, dword [0x4894f4]
mov dword [edi], edx
mov eax, dword [0x4894f8]
mov dword [edi + 4], eax
mov cl, byte [0x4894fc]
mov byte [edi + 8], cl
lea edx, [ebp - 0x328]
add edx, 0xffffffff
mov dword [ebp - 0x3d8], edx
mov eax, dword [ebp - 0x3d8]
mov cl, byte [eax + 1]
mov byte [ebp - 0x3d9], cl
inc dword [ebp - 0x3d8]
cmp byte [ebp - 0x3d9], 0
jne 0x40a56e
mov edi, dword [ebp - 0x3d8]
mov edx, dword [0x489500]
mov dword [edi], edx
mov eax, dword [0x489504]
mov dword [edi + 4], eax
mov cl, byte [0x489508]
mov byte [edi + 8], cl
mov dword [ebp - 4], 0
jmp case.0x409f79.4
lea edx, [ebp - 0x220]
add edx, 0xffffffff
mov dword [ebp - 0x3e0], edx
mov eax, dword [ebp - 0x3e0]
mov cl, byte [eax + 1]
mov byte [ebp - 0x3e1], cl
inc dword [ebp - 0x3e0]
cmp byte [ebp - 0x3e1], 0
jne 0x40a5c6
mov edi, dword [ebp - 0x3e0]
mov edx, dword [str.SachunNxSachun.dll]
mov dword [edi], edx
mov eax, dword [0x489510]
mov dword [edi + 4], eax
mov ecx, dword [0x489514]
mov dword [edi + 8], ecx
mov edx, dword [0x489518]
mov dword [edi + 0xc], edx
mov eax, dword [0x48951c]
mov dword [edi + 0x10], eax
lea ecx, [ebp - 0x118]
add ecx, 0xffffffff
mov dword [ebp - 0x3e8], ecx
mov edx, dword [ebp - 0x3e8]
mov al, byte [edx + 1]
mov byte [ebp - 0x3e9], al
inc dword [ebp - 0x3e8]
cmp byte [ebp - 0x3e9], 0
jne 0x40a623
mov edi, dword [ebp - 0x3e8]
mov ecx, dword [0x489520]
mov dword [edi], ecx
mov edx, dword [0x489524]
mov dword [edi + 4], edx
mov ax, word [0x489528]
mov word [edi + 8], ax
mov cl, byte [0x48952a]
mov byte [edi + 0xa], cl
lea edx, [ebp - 0x328]
add edx, 0xffffffff
mov dword [ebp - 0x3f0], edx
mov eax, dword [ebp - 0x3f0]
mov cl, byte [eax + 1]
mov byte [ebp - 0x3f1], cl
inc dword [ebp - 0x3f0]
cmp byte [ebp - 0x3f1], 0
jne 0x40a67a
mov edi, dword [ebp - 0x3f0]
mov edx, dword [0x48952c]
mov dword [edi], edx
mov eax, dword [0x489530]
mov dword [edi + 4], eax
mov cx, word [0x489534]
mov word [edi + 8], cx
mov dl, byte [0x489536]
mov byte [edi + 0xa], dl
mov dword [ebp - 4], 0
jmp case.0x409f79.4
lea eax, [ebp - 0x220]
add eax, 0xffffffff
mov dword [ebp - 0x3f8], eax
mov ecx, dword [ebp - 0x3f8]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x3f9], dl
inc dword [ebp - 0x3f8]
cmp byte [ebp - 0x3f9], 0
jne 0x40a6dd
mov edi, dword [ebp - 0x3f8]
mov ecx, 7
mov esi, str.StarGostopNxStarGostop.dll
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x118]
add eax, 0xffffffff
mov dword [ebp - 0x400], eax
mov ecx, dword [ebp - 0x400]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x401], dl
inc dword [ebp - 0x400]
cmp byte [ebp - 0x401], 0
jne 0x40a71c
mov edi, dword [ebp - 0x400]
mov eax, dword [0x489554]
mov dword [edi], eax
mov ecx, dword [0x489558]
mov dword [edi + 4], ecx
mov edx, dword [0x48955c]
mov dword [edi + 8], edx
mov ax, word [0x489560]
mov word [edi + 0xc], ax
lea ecx, [ebp - 0x328]
add ecx, 0xffffffff
mov dword [ebp - 0x408], ecx
mov edx, dword [ebp - 0x408]
mov al, byte [edx + 1]
mov byte [ebp - 0x409], al
inc dword [ebp - 0x408]
cmp byte [ebp - 0x409], 0
jne 0x40a772
mov edi, dword [ebp - 0x408]
mov ecx, dword [0x489564]
mov dword [edi], ecx
mov edx, dword [0x489568]
mov dword [edi + 4], edx
mov eax, dword [0x48956c]
mov dword [edi + 8], eax
mov cx, word [0x489570]
mov word [edi + 0xc], cx
mov dword [ebp - 4], 0
lea edx, [ebp - 0x118]
add edx, 0xffffffff
mov dword [ebp - 0x410], edx
mov eax, dword [ebp - 0x410]
mov cl, byte [eax + 1]
mov byte [ebp - 0x411], cl
inc dword [ebp - 0x410]
cmp byte [ebp - 0x411], 0
jne 0x40a7d0
mov edi, dword [ebp - 0x410]
mov edx, dword [0x489574]
mov dword [edi], edx
mov al, byte [0x489578]
mov byte [edi + 4], al
lea ecx, [ebp - 0x118]
push ecx
call fcn.00415990
add esp, 4
test eax, eax
jne 0x40a837
mov edx, dword [ebp - 4]
push edx
lea eax, [ebp - 0x220]
push eax
push 0
lea ecx, [ebp - 0x118]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00415f20
add esp, 0x14
lea eax, [ebp - 0x328]
add eax, 0xffffffff
mov dword [ebp - 0x418], eax
mov ecx, dword [ebp - 0x418]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x419], dl
inc dword [ebp - 0x418]
cmp byte [ebp - 0x419], 0
jne 0x40a846
mov edi, dword [ebp - 0x418]
mov eax, dword [0x48957c]
mov dword [edi], eax
mov cl, byte [0x489580]
mov byte [edi + 4], cl
lea edx, [ebp - 0x328]
push edx
call fcn.00415990
add esp, 4
test eax, eax
jne 0x40a8ad
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x220]
push ecx
push 0
lea edx, [ebp - 0x328]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00415f20
add esp, 0x14
mov ecx, dword [ebp - 0xc]
call fcn.004635af
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8