Function at 0x4030a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x488
push esi
push 0x4168cc
push 0x4162a8
call fcn.0040a8f0
add esp, 8
push 0x104
push 0x4162a8
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [0x41690c], 0
mov dword [0x416908], 0
push str._northcode.exe
push 0x4162a8
push 0
call fcn.00405497
add esp, 0xc
cmp eax, 0xffffffff
je 0x403107
mov dword [0x416908], 1
push 0x3ff
lea ecx, [ebp - 0x400]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp dword [0x41687c], 0
je 0x403147
mov edx, dword [0x41687c]
mov dword [ebp - 0x41c], edx
mov eax, dword [ebp - 0x41c]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [0x41687c], 0
lea ecx, [ebp - 0x400]
push ecx
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x420], eax
mov edx, dword [ebp - 0x420]
mov dword [0x41687c], edx
lea eax, [ebp - 0x400]
push eax
mov ecx, dword [0x41687c]
push ecx
call fcn.0040a8f0
add esp, 8
mov edx, dword [0x41687c]
push edx
call fcn.00405bd1
add esp, 4
mov dword [ebp - 0x408], 0
push 0x411758
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov eax, dword [0x41687c]
push eax
call fcn.0040a9f0
add esp, 4
lea ecx, [esi + eax + 1]
push ecx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x424], eax
mov edx, dword [ebp - 0x424]
mov dword [ebp - 0x408], edx
mov eax, dword [0x41687c]
push eax
push str.GetWindowsDirectory:__s
mov ecx, dword [ebp - 0x408]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp - 0x408]
push edx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x408], 0
je 0x403237
mov eax, dword [ebp - 0x408]
mov dword [ebp - 0x428], eax
mov ecx, dword [ebp - 0x428]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x408], 0
push 0x3ff
lea edx, [ebp - 0x400]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp dword [0x416880], 0
je 0x403276
mov eax, dword [0x416880]
mov dword [ebp - 0x42c], eax
mov ecx, dword [ebp - 0x42c]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x416880], 0
lea edx, [ebp - 0x400]
push edx
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x430], eax
mov eax, dword [ebp - 0x430]
mov dword [0x416880], eax
lea ecx, [ebp - 0x400]
push ecx
mov edx, dword [0x416880]
push edx
call fcn.0040a8f0
add esp, 8
mov eax, dword [0x416880]
push eax
call fcn.00405bd1
add esp, 4
mov dword [ebp - 0x40c], 0
push 0x411788
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [0x416880]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x40c], eax
mov ecx, dword [0x416880]
push ecx
push str.GetSystemDirectory:__s
mov edx, dword [ebp - 0x40c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0x40c]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x40c], 0
je 0x403366
mov ecx, dword [ebp - 0x40c]
mov dword [ebp - 0x438], ecx
mov edx, dword [ebp - 0x438]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x40c], 0
cmp dword [0x416884], 0
je 0x403393
mov eax, dword [0x416884]
mov dword [ebp - 0x43c], eax
mov ecx, dword [ebp - 0x43c]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x416884], 0
push 0x4117b8
call fcn.0040647c
add esp, 4
push eax
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x440], eax
mov edx, dword [ebp - 0x440]
mov dword [0x416884], edx
push str.SWF_Studio
call fcn.0040647c
add esp, 4
push eax
mov eax, dword [0x416884]
push eax
call fcn.0040a8f0
add esp, 8
mov dword [ebp - 0x410], 0
push 0x4117d0
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [0x416884]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x410], eax
mov ecx, dword [0x416884]
push ecx
push str.GetCommonFilesDirectory:__s
mov edx, dword [ebp - 0x410]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0x410]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x410], 0
je 0x403483
mov ecx, dword [ebp - 0x410]
mov dword [ebp - 0x448], ecx
mov edx, dword [ebp - 0x448]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x410], 0
cmp dword [0x416888], 0
je 0x4034b0
mov eax, dword [0x416888]
mov dword [ebp - 0x44c], eax
mov ecx, dword [ebp - 0x44c]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x416888], 0
mov edx, dword [0x416880]
push edx
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x450], eax
mov eax, dword [ebp - 0x450]
mov dword [0x416888], eax
mov ecx, dword [0x416880]
push ecx
mov edx, dword [0x416888]
push edx
call fcn.0040a8f0
add esp, 8
push str.MacromedFlash
push 0x416888
call fcn.004055a0
add esp, 8
mov eax, dword [0x416888]
push eax
call fcn.00406539
add esp, 4
mov dword [ebp - 0x414], 0
push 0x411818
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [0x416888]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x414], eax
mov ecx, dword [0x416888]
push ecx
push str.GetFlashDir:__s
mov edx, dword [ebp - 0x414]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0x414]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x414], 0
je 0x4035b2
mov ecx, dword [ebp - 0x414]
mov dword [ebp - 0x458], ecx
mov edx, dword [ebp - 0x458]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x414], 0
lea eax, [ebp - 0x400]
push eax
push 0x3ff
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp dword [0x41688c], 0
je 0x4035f2
mov ecx, dword [0x41688c]
mov dword [ebp - 0x45c], ecx
mov edx, dword [ebp - 0x45c]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x41688c], 0
lea eax, [ebp - 0x400]
push eax
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x460], eax
mov ecx, dword [ebp - 0x460]
mov dword [0x41688c], ecx
lea edx, [ebp - 0x400]
push edx
mov eax, dword [0x41688c]
push eax
call fcn.0040a8f0
add esp, 8
mov ecx, dword [0x41688c]
push ecx
call fcn.00405bd1
add esp, 4
mov dword [ebp - 0x418], 0
push 0x411838
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov edx, dword [0x41688c]
push edx
call fcn.0040a9f0
add esp, 4
lea eax, [esi + eax + 1]
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x464], eax
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x418], ecx
mov edx, dword [0x41688c]
push edx
push str.GetTempPath:__s
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, dword [ebp - 0x418]
push ecx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x418], 0
je 0x4036e3
mov edx, dword [ebp - 0x418]
mov dword [ebp - 0x468], edx
mov eax, dword [ebp - 0x468]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x418], 0
cmp dword [0x416898], 0
je 0x403711
mov ecx, dword [0x416898]
mov dword [ebp - 0x46c], ecx
mov edx, dword [ebp - 0x46c]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x416898], 0
push 0
call fcn.0040711a
add esp, 4
push eax
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x470]
mov dword [0x416898], eax
push 0
call fcn.0040711a
add esp, 4
push eax
mov ecx, dword [0x416898]
push ecx
call fcn.0040a8f0
add esp, 8
push 1
push 0
mov edx, dword [0x416880]
push edx
call fcn.004059ac
add esp, 0xc
mov dword [0x41689c], eax
cmp dword [0x416666], 0x20
jne 0x40381c
cmp dword [0x4168a0], 0
je 0x4037ad
mov eax, dword [0x4168a0]
mov dword [ebp - 0x474], eax
mov ecx, dword [ebp - 0x474]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x4168a0], 0
mov edx, dword [0x416898]
push edx
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x478], eax
mov eax, dword [ebp - 0x478]
mov dword [0x4168a0], eax
mov ecx, dword [0x416898]
push ecx
mov edx, dword [0x4168a0]
push edx
call fcn.0040a8f0
add esp, 8
push 0x411858
push 0x4168a0
call fcn.004055a0
add esp, 8
push 0x416611
call fcn.00405951
add esp, 4
push eax
push 0x4168a0
call fcn.004055a0
add esp, 8
cmp dword [0x416666], 0x40
jne 0x4038c5
cmp dword [0x4168a0], 0
je 0x403856
mov eax, dword [0x4168a0]
mov dword [ebp - 0x47c], eax
mov ecx, dword [ebp - 0x47c]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x4168a0], 0
mov edx, dword [0x41689c]
push edx
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x480]
mov dword [0x4168a0], eax
mov ecx, dword [0x41689c]
push ecx
mov edx, dword [0x4168a0]
push edx
call fcn.0040a8f0
add esp, 8
push 0x41185c
push 0x4168a0
call fcn.004055a0
add esp, 8
push 0x416611
call fcn.00405951
add esp, 4
push eax
push 0x4168a0
call fcn.004055a0
add esp, 8
push 0x4168d0
lea eax, [ebp - 0x400]
push eax
call fcn.0040a8f0
add esp, 8
cmp dword [0x41666e], 0x80
jne 0x403927
lea ecx, [ebp - 0x404]
push ecx
push 0x10
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x403927
lea edx, [ebp - 0x400]
push edx
mov eax, dword [ebp - 0x404]
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
cmp eax, 1
je 0x403927
push 0x4168d4
lea ecx, [ebp - 0x400]
push ecx
call fcn.0040a8f0
add esp, 8
cmp dword [0x41666e], 0x100
jne 0x40399f
lea edx, [ebp - 0x404]
push edx
push 0xb
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x40399f
lea eax, [ebp - 0x400]
push eax
mov ecx, dword [ebp - 0x404]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
cmp eax, 1
je 0x403977
push 0x4168d8
lea edx, [ebp - 0x400]
push edx
call fcn.0040a8f0
add esp, 8
jmp 0x40399f
push 0x411860
lea eax, [ebp - 0x400]
push eax
call fcn.0040a900
add esp, 8
push 0x416611
lea ecx, [ebp - 0x400]
push ecx
call fcn.0040a900
add esp, 8
cmp dword [0x4168a8], 0
je 0x4039cd
mov edx, dword [0x4168a8]
mov dword [ebp - 0x484], edx
mov eax, dword [ebp - 0x484]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [0x4168a8], 0
lea ecx, [ebp - 0x400]
push ecx
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0x488], eax
mov edx, dword [ebp - 0x488]
mov dword [0x4168a8], edx
lea eax, [ebp - 0x400]
push eax
mov ecx, dword [0x4168a8]
push ecx
call fcn.0040a8f0
add esp, 8
mov edx, dword [0x416880]
push edx
call fcn.004071d7
add esp, 4
mov dword [0x4168b4], eax
pop esi
mov esp, ebp
pop ebp
ret