Function at 0x402340
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4139b4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x960
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x940], ecx
mov dword [ebp - 4], 0
push 0x5c
mov eax, dword [ebp + 8]
push eax
call fcn.00405ab0
add esp, 8
mov dword [ebp - 0x944], eax
cmp dword [ebp - 0x944], 0
jne 0x402434
mov ecx, dword [ebp - 0x940]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edx, dword [ebp - 0x940]
push edx
call fcn.00406f50
add esp, 4
mov ecx, dword [ebp - 0x940]
movsx edx, byte [ecx + eax - 1]
cmp edx, 0x5c
jne 0x4023de
mov eax, dword [ebp - 0x940]
push eax
call fcn.00406f50
add esp, 4
mov ecx, dword [ebp - 0x940]
mov byte [ecx + eax - 1], 0
push 2
push 0x414168
mov edx, dword [ebp - 0x940]
push edx
call fcn.00406f50
add esp, 4
add eax, dword [ebp - 0x940]
push eax
call fcn.00406ab0
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.00406f50
add esp, 4
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x940]
push edx
call fcn.00406f50
add esp, 4
add eax, dword [ebp - 0x940]
push eax
call fcn.00406ab0
add esp, 0xc
jmp 0x40244c
push 0x104
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x940]
push ecx
call fcn.00406ab0
add esp, 0xc
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov edx, dword [ebp - 0x940]
push edx
call fcn.00401e90
mov dword [ebp - 0x948], eax
mov eax, dword [ebp - 0x940]
mov ecx, dword [ebp - 0x948]
mov dword [eax + 0x108], ecx
mov edx, dword [ebp - 0x940]
cmp dword [edx + 0x108], 0
je 0x4024a2
mov eax, dword [ebp - 0x940]
cmp dword [eax + 0x108], 0xffffffff
jne 0x4024a9
xor eax, eax
jmp 0x402c01
mov ecx, dword [ebp - 0x940]
cmp dword [ecx + 0x108], 0xbebc200
jbe 0x4024c2
xor eax, eax
jmp 0x402c01
mov edx, dword [ebp - 0x940]
cmp dword [edx + 0x104], 0
je 0x402502
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x92c], ecx
mov edx, dword [ebp - 0x92c]
push edx
call fcn.0040639b
add esp, 4
mov eax, dword [ebp - 0x940]
mov dword [eax + 0x104], 0
mov ecx, dword [ebp - 0x940]
cmp dword [ecx + 0x10c], 0
je 0x402542
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x10c]
mov dword [ebp - 0x930], eax
mov ecx, dword [ebp - 0x930]
push ecx
call fcn.0040639b
add esp, 4
mov edx, dword [ebp - 0x940]
mov dword [edx + 0x10c], 0
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x108]
add ecx, 4
push ecx
call fcn.0040646f
add esp, 4
mov dword [ebp - 0x94c], eax
mov edx, dword [ebp - 0x94c]
mov dword [ebp - 0x934], edx
mov eax, dword [ebp - 0x940]
mov ecx, dword [ebp - 0x934]
mov dword [eax + 0x104], ecx
mov edx, dword [ebp - 0x940]
cmp dword [edx + 0x104], 0
jne 0x402594
xor eax, eax
jmp 0x402c01
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x108]
xor edx, edx
push edx
push ecx
push 0
push 0
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x104]
push ecx
mov edx, dword [ebp - 0x940]
push edx
call fcn.00401e90
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x104]
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x108]
mov byte [ecx + eax], 0xd
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x104]
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x108]
mov byte [edx + ecx + 1], 0xa
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x104]
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x108]
mov byte [eax + edx + 2], 0
mov eax, dword [ebp - 0x940]
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x108]
mov dword [eax + 0x110], edx
mov eax, dword [ebp - 0x940]
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x108]
mov dword [eax + 0x114], edx
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x104]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x940]
mov dword [edx + 0x124], 0
jmp 0x40268d
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x124]
add ecx, 1
mov edx, dword [ebp - 0x940]
mov dword [edx + 0x124], ecx
push 0x41416c
mov eax, dword [ebp - 0x18]
push eax
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x950], eax
mov ecx, dword [ebp - 0x950]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0
jne 0x4026b5
jmp 0x4026c0
mov edx, dword [ebp - 0x18]
add edx, 0xf
mov dword [ebp - 0x18], edx
jmp 0x402672
mov eax, dword [ebp - 0x940]
cmp dword [eax + 0x124], 0
jne 0x4026d6
xor eax, eax
jmp 0x402c01
xor ecx, ecx
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x124]
mov edx, 0x18
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040646f
add esp, 4
mov dword [ebp - 0x954], eax
mov eax, dword [ebp - 0x954]
mov dword [ebp - 0x938], eax
mov ecx, dword [ebp - 0x940]
mov edx, dword [ebp - 0x938]
mov dword [ecx + 0x10c], edx
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x124]
imul ecx, ecx, 0x18
push ecx
push 0
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x10c]
push eax
call fcn.00406e50
add esp, 0xc
mov ecx, dword [ebp - 0x940]
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x10c]
mov dword [ecx + 0x128], eax
mov ecx, dword [ebp - 0x940]
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x124]
mov dword [ecx + 0x118], eax
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x104]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0
jmp 0x402797
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
push 0x41417c
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x958], eax
mov edx, dword [ebp - 0x958]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jne 0x4027c2
jmp 0x402bbf
push 0x41418c
mov eax, dword [ebp - 0x18]
push eax
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x95c], eax
mov ecx, dword [ebp - 0x95c]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0
jne 0x402808
mov edx, dword [ebp - 0x14]
push edx
push 0x4141a4
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
jmp 0x402c01
mov esi, dword [ebp - 0x14]
imul esi, esi, 0x18
mov ecx, dword [ebp - 0x940]
mov edi, dword [ecx + 0x128]
push 0x4141cc
call fcn.00406f50
add esp, 4
add eax, dword [ebp - 0x18]
mov dword [esi + edi], eax
push 0x4141e4
mov edx, dword [ebp - 0x18]
push edx
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x960], eax
mov eax, dword [ebp - 0x960]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x402873
mov ecx, dword [ebp - 0x14]
push ecx
push 0x4141f8
lea edx, [ebp - 0x928]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
jmp 0x402c01
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x128]
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax + edx]
jne 0x4028a9
mov edx, dword [ebp - 0x14]
imul edx, edx, 0x18
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x128]
mov dword [ecx + edx + 0xc], 0
jmp 0x4028da
mov edx, dword [ebp - 0x14]
imul edx, edx, 0x18
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x128]
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x18
mov esi, dword [ebp - 0x940]
mov esi, dword [esi + 0x128]
mov edi, dword [ebp - 0x18]
sub edi, dword [esi + eax]
sub edi, 2
mov dword [ecx + edx + 0xc], edi
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x128]
mov edx, dword [ebp - 0x14]
imul edx, edx, 0x18
mov esi, dword [ebp - 0x940]
mov esi, dword [esi + 0x128]
mov edx, dword [esi + edx]
mov eax, dword [eax + ecx + 0xc]
mov byte [edx + eax], 0
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
push 0x414220
mov edx, dword [ebp - 0x18]
push edx
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x964], eax
mov eax, dword [ebp - 0x964]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x402958
mov ecx, dword [ebp - 0x14]
push ecx
push 0x414238
lea edx, [ebp - 0x928]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
jmp 0x402c01
mov esi, dword [ebp - 0x14]
imul esi, esi, 0x18
mov eax, dword [ebp - 0x940]
mov edi, dword [eax + 0x128]
push 0x414260
call fcn.00406f50
add esp, 4
add eax, dword [ebp - 0x18]
mov dword [edi + esi + 4], eax
push 0x414278
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x968], eax
mov edx, dword [ebp - 0x968]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jne 0x4029c4
mov eax, dword [ebp - 0x14]
push eax
push 0x41428c
lea ecx, [ebp - 0x928]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
jmp 0x402c01
mov edx, dword [ebp - 0x14]
imul edx, edx, 0x18
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x128]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ecx + edx + 4]
jne 0x4029fb
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x128]
mov dword [eax + ecx + 0x10], 0
jmp 0x402a2d
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x128]
mov edx, dword [ebp - 0x14]
imul edx, edx, 0x18
mov esi, dword [ebp - 0x940]
mov esi, dword [esi + 0x128]
mov edi, dword [ebp - 0x18]
sub edi, dword [esi + edx + 4]
sub edi, 2
mov dword [eax + ecx + 0x10], edi
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x128]
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x18
mov esi, dword [ebp - 0x940]
mov esi, dword [esi + 0x128]
mov ecx, dword [esi + ecx + 4]
mov edx, dword [edx + eax + 0x10]
mov byte [ecx + edx], 0
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
push 0x4142b4
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x96c], eax
mov edx, dword [ebp - 0x96c]
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jne 0x402aac
mov eax, dword [ebp - 0x14]
push eax
push 0x4142d0
lea ecx, [ebp - 0x928]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
jmp 0x402c01
mov esi, dword [ebp - 0x14]
imul esi, esi, 0x18
mov edx, dword [ebp - 0x940]
mov edi, dword [edx + 0x128]
push 0x4142fc
call fcn.00406f50
add esp, 4
add eax, dword [ebp - 0x18]
mov dword [edi + esi + 8], eax
push 0x414318
mov eax, dword [ebp - 0x18]
push eax
call fcn.00405ad0
add esp, 8
mov dword [ebp - 0x970], eax
mov ecx, dword [ebp - 0x970]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0
jne 0x402b18
mov edx, dword [ebp - 0x14]
push edx
push 0x414334
lea eax, [ebp - 0x928]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
jmp 0x402c01
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x128]
mov edx, dword [ebp - 0x18]
cmp edx, dword [eax + ecx + 8]
jne 0x402b4f
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x128]
mov dword [edx + eax + 0x14], 0
jmp 0x402b81
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x940]
mov edx, dword [ecx + 0x128]
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x18
mov esi, dword [ebp - 0x940]
mov esi, dword [esi + 0x128]
mov edi, dword [ebp - 0x18]
sub edi, dword [esi + ecx + 8]
sub edi, 2
mov dword [edx + eax + 0x14], edi
mov edx, dword [ebp - 0x14]
imul edx, edx, 0x18
mov eax, dword [ebp - 0x940]
mov ecx, dword [eax + 0x128]
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x18
mov esi, dword [ebp - 0x940]
mov esi, dword [esi + 0x128]
mov eax, dword [esi + eax + 8]
mov ecx, dword [ecx + edx + 0x14]
mov byte [eax + ecx], 0
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
jmp 0x40278e
mov eax, dword [ebp - 0x940]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x124], ecx
mov edx, dword [ebp - 0x940]
mov eax, dword [edx + 0x124]
jmp 0x402c01
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4