Function at 0x403400
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, dword [ebp + 8]
sub esp, 0x34
push ebx
push esi
push edi
push 0x49f910
mov dword [0x4a0a30], eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x4a13a8
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x403504
mov byte [0x4a13a8], al
mov esi, 0x49588a
mov ebx, 1
mov dword [0x4a14ac], esi
mov byte [esp + 0x12], 0
mov byte [esp + 0x11], 0
mov dword [esp + 0x14], 1
cmp dword [0x49e908], ebx
jle 0x4035f4
lea ebx, [ebx]
cmp byte [esp + 0x11], 0
mov ecx, dword [0x49e90c]
mov esi, dword [ecx + ebx*4]
je 0x40356e
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x24]
push 0x490080
push eax
call fcn.00477162
add esp, 0xc
cmp byte [esp + 0x20], 0
mov edi, eax
je 0x403642
lea ecx, [esp + 0x13]
push ecx
push 0
push 0
lea edx, [esp + 0x24]
push edx
push edi
lea eax, [esp + 0x34]
push eax
mov ecx, 0x4a2c18
call fcn.0041d790
test eax, eax
jne 0x4034ed
movzx ecx, byte [esp + 0x13]
mov edx, dword [esp + 0x18]
push ecx
push edx
push edi
lea eax, [esp + 0x2c]
push eax
mov ecx, 0x4a2c18
call fcn.0041db10
test eax, eax
je 0x403642
push 1
push 0
push 0xffffffffffffffff
push esi
mov ecx, eax
call fcn.004668b0
inc dword [esp + 0x14]
jmp 0x4035e7
cmp byte [0x4a13a8], 0
je 0x40343c
mov eax, 0x4a13a8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403520
sub eax, edx
mov edi, eax
lea eax, [edi + 1]
call fcn.00461610
mov esi, eax
test esi, esi
jne 0x403552
push 0x4a13a8
push 0x4918cc
mov ecx, 0x4a2c18
call fcn.00429900
jmp 0x403441
test edi, edi
je 0x403565
push edi
push 0x4a13a8
push esi
call fcn.0047b470
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x403441
push 0x490084
push esi
call fcn.00476cb6
add esp, 8
test eax, eax
je 0x4035e2
push 0x490088
push esi
call fcn.00476cb6
add esp, 8
test eax, eax
je 0x4035e2
push 0x490094
push esi
call fcn.00476cb6
add esp, 8
test eax, eax
je 0x4035d9
push 0x490098
push esi
call fcn.00476cb6
add esp, 8
test eax, eax
je 0x4035d9
push 0x4900a0
push esi
call fcn.00476cb6
add esp, 8
test eax, eax
jne 0x4035d1
mov byte [0x4a30e8], 1
jmp 0x4035e7
mov byte [esp + 0x11], 1
dec ebx
jmp 0x4035e7
mov byte [0x4a0b59], 1
jmp 0x4035e7
mov byte [esp + 0x12], 1
inc ebx
cmp ebx, dword [0x49e908]
jl 0x403470
lea ecx, [esp + 0x13]
push ecx
push 0
push 0
lea edx, [esp + 0x24]
push edx
push 0
push 0x4900b0
mov ecx, 0x4a2c18
call fcn.0041d790
test eax, eax
jne 0x403637
movzx eax, byte [esp + 0x13]
mov ecx, dword [esp + 0x18]
push eax
push ecx
push 0
push 0x4900b0
mov ecx, 0x4a2c18
call fcn.0041db10
test eax, eax
je 0x403642
cmp byte [eax + 0x17], 0
jne 0x403650
mov esi, dword [eax + 0xc]
jmp 0x403652
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, eax
mov al, byte [esi + 0x15]
test al, 2
je 0x403668
and al, 0x3d
mov byte [esi + 0x15], al
mov eax, dword [esi]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x14]
dec eax
cdq
mov dword [esi], eax
mov al, byte [esi + 0x15]
and al, 0x9f
or al, 0x18
mov dword [esi + 4], edx
mov byte [esi + 0x15], al
jns 0x40368c
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x4036b1
cmp dword [0x4a0b84], 0
je 0x403699
test al, 0x10
jne 0x4036a6
cmp dword [0x4a0b88], 0
je 0x4036b1
test al, 0x20
je 0x4036b1
test al, 8
je 0x4036b1
mov eax, esi
call fcn.00401150
call fcn.004032a0
mov bl, byte [esp + 0x12]
push 0x4a2c18
mov al, bl
call fcn.00413ef0
cmp eax, 1
jne 0x403642
mov esi, dword [0x49d3c8]
mov ecx, 0x36
mov edi, 0x49f708
mov eax, 0x4a2c18
rep movsd dword es:[edi], dword [esi]
call fcn.00414c80
cmp eax, 0xffffffff
je 0x403642
test eax, eax
je 0x40398d
mov eax, dword [0x4a0b74]
test eax, eax
jne 0x40373c
mov ecx, dword [0x49e4e0]
cmp word [ecx], ax
jne 0x403730
cmp dword [0x4a24a8], eax
jne 0x403730
cmp dword [0x4a0b68], eax
jne 0x403730
cmp dword [0x4a0b6c], eax
jne 0x403730
cmp byte [0x4a0b5b], al
je 0x4037af
mov dword [0x4a0b74], 1
jmp 0x403741
cmp eax, 4
je 0x4037af
test bl, bl
jne 0x4037b3
cmp byte [0x4a0b59], bl
jne 0x403832
mov edx, dword [0x4a30e0]
push edx
push 0x4900b4
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
test edi, edi
je 0x403832
mov eax, dword [0x4a0b74]
cmp eax, 3
je 0x40398d
cmp eax, 2
je 0x4037a8
fldz
mov eax, dword [0x4a30d4]
push 0
sub esp, 8
fstp qword [esp]
push eax
push 4
push 0x4900c0
call fcn.00468330
add esp, 0x18
cmp eax, 7
je 0x40398d
mov eax, 0x407
jmp 0x4037d0
test bl, bl
je 0x403832
mov ecx, dword [0x4a30e0]
push ecx
push 0x4900b4
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
test edi, edi
je 0x403832
mov eax, 0x406
push 0
push eax
push 0x44
push edi
call dword [sym.imp.USER32.dll_PostMessageA]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x14
xor esi, esi
call ebx
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40382e
cmp esi, 0x64
jne 0x40381e
fldz
push 0
sub esp, 8
fstp qword [esp]
push 0
push 4
push 0x490158
call fcn.00468330
add esp, 0x18
cmp eax, 7
je 0x403642
xor esi, esi
push 0x14
inc esi
call ebx
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4037f3
push 0x64
call ebx
mov esi, dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 0
push 0x49f62c
push 0
push 0x2000
call esi
test eax, eax
je 0x403862
cmp dword [0x49f62c], 0
je 0x403862
push 2
push 0
push 0
push 0x2001
call esi
push 0x4a2c18
call fcn.00414210
cmp eax, 1
jne 0x403642
push 0
push 4
push 0
call fcn.004772dc
add eax, 0x20
push eax
call fcn.004771e6
mov esi, dword [0x49d32c]
add esp, 0x10
test esi, esi
je 0x4038b7
imul esi, esi, 0x70
push esi
call fcn.00476de3
add esp, 4
mov dword [0x4a14b4], eax
test eax, eax
je 0x4038b7
push esi
push 0
push eax
call fcn.004812e0
add esp, 0xc
cmp byte [0x4a32eb], 0
jne 0x4038fa
push 0x4901a0
push 0x4901b8
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4038f4
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], 8
mov dword [esp + 0x20], 0x1ff
call eax
jmp 0x4038fa
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.00408ff0
lea eax, [esp + 0x13]
push eax
push 0
push 0
lea ecx, [esp + 0x24]
push ecx
push 0
push 0x4901c4
mov ecx, 0x4a2c18
mov byte [0x4a30e4], 1
call fcn.0041d790
test eax, eax
jne 0x403949
movzx edx, byte [esp + 0x13]
mov eax, dword [esp + 0x18]
push edx
push eax
push 0
push 0x4901c4
mov ecx, 0x4a2c18
call fcn.0041db10
test eax, eax
je 0x40396f
cmp byte [eax + 0x17], 0
jne 0x403954
mov esi, dword [eax + 0xc]
jmp 0x403956
mov esi, eax
test byte [esi + 0x15], 0x80
jne 0x40396f
mov eax, esi
call fcn.00401150
mov cl, byte [esi + 0x15]
and cl, 0xf
or cl, 0x80
mov byte [esi + 0x15], cl
push 0x4a2c18
call fcn.00414720
test eax, eax
je 0x403642
push 0
push 0xa
call fcn.00401340
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10