Function at 0x432690
Capabilities:
Get common file path

Disassembly:
sub esp, 0x40c
mov eax, dword [0x452504]
push ebp
push edi
mov dword [esp + 0x410], eax
push 0x104
lea eax, [esp + 0x214]
push eax
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
mov edi, dword [esp + 0x418]
je 0x4330d2
push ebx
lea eax, [esp + 0x14]
lea ebx, [esp + 0x214]
mov ecx, eax
mov byte [esp + 0x317], 0
mov edx, 0x200
sub ebx, ecx
mov cl, byte [eax + ebx]
test cl, cl
je 0x4326f4
mov byte [eax], cl
inc eax
dec edx
jne 0x4326e5
jmp 0x4326f8
test edx, edx
jne 0x4326f9
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x14]
cmp byte [eax], 0
je 0x432710
inc eax
dec ecx
jne 0x432705
jmp 0x432732
test ecx, ecx
je 0x432732
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x1c]
push eax
call fcn.00432320
push esi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432821
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, 0x40002
cmp edx, eax
mov ecx, 0x5f
ja 0x43276b
jb 0x432799
cmp esi, ecx
ja 0x43276b
jb 0x432799
test edi, edi
je 0x432775
mov dword [edi], 1
mov eax, dword [esp + 0x424]
test eax, eax
je 0x432786
mov dword [eax], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432794
mov byte [eax], 0x20
mov ebp, 1
mov eax, 0x40003
cmp edx, eax
mov ecx, 0x448
ja 0x4327af
jb 0x4327dd
cmp esi, ecx
ja 0x4327af
jb 0x4327dd
test edi, edi
je 0x4327b9
mov dword [edi], 2
mov eax, dword [esp + 0x424]
test eax, eax
je 0x4327ca
mov dword [eax], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x4327d8
mov byte [eax], 0x20
mov ebp, 1
mov eax, 0x40004
cmp edx, eax
mov ecx, 0x44
ja 0x4327f3
jb 0x432821
cmp esi, ecx
ja 0x4327f3
jb 0x432821
test edi, edi
je 0x4327fd
mov dword [edi], 3
mov eax, dword [esp + 0x424]
test eax, eax
je 0x43280e
mov dword [eax], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x43281c
mov byte [eax], 0x20
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
lea ebx, [ebx]
mov cl, byte [eax + ebx]
test cl, cl
je 0x43283f
mov byte [eax], cl
inc eax
dec edx
jne 0x432830
jmp 0x432843
test edx, edx
jne 0x432844
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x43285b
inc eax
dec ecx
jne 0x432850
jmp 0x43287d
test ecx, ecx
je 0x43287d
mov eax, 0x200
sub eax, ecx
push str.d3drg8x.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x20]
push edx
call fcn.00432320
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x4328df
mov edx, dword [esp + 0x14]
mov eax, 0x40004
cmp edx, eax
mov ecx, 0x46
ja 0x4328b1
jb 0x4328df
mov eax, dword [esp + 0x10]
cmp eax, ecx
ja 0x4328b1
jb 0x4328df
test edi, edi
je 0x4328bb
mov dword [edi], 3
mov eax, dword [esp + 0x424]
test eax, eax
je 0x4328cc
mov dword [eax], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x4328da
mov byte [eax], 0x61
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
mov cl, byte [eax + ebx]
test cl, cl
je 0x4328f7
mov byte [eax], cl
inc eax
dec edx
jne 0x4328e8
jmp 0x4328fb
test edx, edx
jne 0x4328fc
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432913
inc eax
dec ecx
jne 0x432908
jmp 0x432935
test ecx, ecx
je 0x432935
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x20]
push eax
call fcn.00432320
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432a23
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, 0x40005
cmp edx, eax
mov ecx, 0x9b
ja 0x43296d
jb 0x43299b
cmp esi, ecx
ja 0x43296d
jb 0x43299b
test edi, edi
je 0x432977
mov dword [edi], 5
mov eax, dword [esp + 0x424]
test eax, eax
je 0x432988
mov dword [eax], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432996
mov byte [eax], 0x20
mov ebp, 1
mov eax, 0x40006
cmp edx, eax
mov ecx, 0x13e
ja 0x4329b1
jb 0x4329df
cmp esi, ecx
ja 0x4329b1
jb 0x4329df
test edi, edi
je 0x4329bb
mov dword [edi], 6
mov eax, dword [esp + 0x424]
test eax, eax
je 0x4329cc
mov dword [eax], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x4329da
mov byte [eax], 0x20
mov ebp, 1
mov eax, 0x40006
cmp edx, eax
mov ecx, 0x1b4
ja 0x4329f5
jb 0x432a23
cmp esi, ecx
ja 0x4329f5
jb 0x432a23
test edi, edi
je 0x4329ff
mov dword [edi], 6
mov eax, dword [esp + 0x424]
test eax, eax
je 0x432a10
mov dword [eax], 1
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432a1e
mov byte [eax], 0x20
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
lea esp, [esp]
mov cl, byte [eax + ebx]
test cl, cl
je 0x432a3f
mov byte [eax], cl
inc eax
dec edx
jne 0x432a30
jmp 0x432a43
test edx, edx
jne 0x432a44
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432a5b
inc eax
dec ecx
jne 0x432a50
jmp 0x432a7d
test ecx, ecx
je 0x432a7d
mov eax, 0x200
sub eax, ecx
push str.dplayx.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x20]
push edx
call fcn.00432320
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432ae1
mov edx, dword [esp + 0x14]
mov eax, 0x40006
cmp edx, eax
mov ecx, 0x30206
ja 0x432ab1
jb 0x432ae1
mov eax, dword [esp + 0x10]
cmp eax, ecx
ja 0x432ab1
jb 0x432ae1
test edi, edi
je 0x432abb
mov dword [edi], 6
mov esi, dword [esp + 0x424]
test esi, esi
je 0x432acc
mov dword [esi], 1
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432ada
mov byte [eax], 0x61
mov ebp, 1
jmp 0x432ae8
mov esi, dword [esp + 0x424]
mov edx, 0x200
lea eax, [esp + 0x18]
mov cl, byte [eax + ebx]
test cl, cl
je 0x432b00
mov byte [eax], cl
inc eax
dec edx
jne 0x432af1
jmp 0x432b04
test edx, edx
jne 0x432b05
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432b1c
inc eax
dec ecx
jne 0x432b11
jmp 0x432b3e
test ecx, ecx
je 0x432b3e
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x20]
push eax
call fcn.00432320
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432b99
mov edx, dword [esp + 0x14]
mov eax, 0x40007
cmp edx, eax
mov ecx, 0x2bc
ja 0x432b72
jb 0x432b99
mov eax, dword [esp + 0x10]
cmp eax, ecx
ja 0x432b72
jb 0x432b99
test edi, edi
je 0x432b7c
mov dword [edi], 7
test esi, esi
je 0x432b86
mov dword [esi], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432b94
mov byte [eax], 0x20
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
mov cl, byte [eax + ebx]
test cl, cl
je 0x432bb1
mov byte [eax], cl
inc eax
dec edx
jne 0x432ba2
jmp 0x432bb5
test edx, edx
jne 0x432bb6
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432bcd
inc eax
dec ecx
jne 0x432bc2
jmp 0x432bef
test ecx, ecx
je 0x432bef
mov eax, 0x200
sub eax, ecx
push str.dinput.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x20]
push edx
call fcn.00432320
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432c4a
mov edx, dword [esp + 0x14]
mov eax, 0x40007
cmp edx, eax
mov ecx, 0x2cc
ja 0x432c23
jb 0x432c4a
mov eax, dword [esp + 0x10]
cmp eax, ecx
ja 0x432c23
jb 0x432c4a
test edi, edi
je 0x432c2d
mov dword [edi], 7
test esi, esi
je 0x432c37
mov dword [esi], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432c45
mov byte [eax], 0x61
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
mov cl, byte [eax + ebx]
test cl, cl
je 0x432c62
mov byte [eax], cl
inc eax
dec edx
jne 0x432c53
jmp 0x432c66
test edx, edx
jne 0x432c67
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432c7e
inc eax
dec ecx
jne 0x432c73
jmp 0x432ca0
test ecx, ecx
je 0x432ca0
mov eax, 0x200
sub eax, ecx
push str.ddraw.dll
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x20]
push eax
call fcn.00432320
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432d32
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov esi, ecx
shr esi, 0x10
cmp si, 4
jne 0x432cdd
mov eax, 0x40008
cmp ecx, eax
mov edx, 0x190
ja 0x432cfd
jb 0x432cdd
cmp edi, edx
jae 0x432cfd
cmp si, 5
jne 0x432d32
mov eax, GlobalAlloc
push eax
mov edx, 0x8d20190
push edx
push ecx
push edi
call fcn.00432440
add esp, 0x10
test eax, eax
jl 0x432d32
mov eax, dword [esp + 0x420]
test eax, eax
je 0x432d0e
mov dword [eax], 8
mov eax, dword [esp + 0x424]
test eax, eax
je 0x432d1f
mov dword [eax], 0
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432d2d
mov byte [eax], 0x20
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
jmp 0x432d40
mov cl, byte [eax + ebx]
test cl, cl
je 0x432d4f
mov byte [eax], cl
inc eax
dec edx
jne 0x432d40
jmp 0x432d53
test edx, edx
jne 0x432d54
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432d6b
inc eax
dec ecx
jne 0x432d60
jmp 0x432d8d
test ecx, ecx
je 0x432d8d
mov eax, 0x200
sub eax, ecx
push str.d3d8.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x20]
push edx
call fcn.00432320
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432e92
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov edi, edx
shr edi, 0x10
cmp di, 4
jne 0x432dce
mov eax, 0x40008
cmp edx, eax
mov ecx, 0x10371
ja 0x432dee
jb 0x432dce
cmp esi, ecx
jae 0x432dee
cmp di, 5
jne 0x432e23
mov eax, GlobalAlloc
push eax
mov ecx, 0xa280371
push ecx
push edx
push esi
call fcn.00432440
add esp, 0x10
test eax, eax
jl 0x432e23
mov eax, dword [esp + 0x420]
test eax, eax
je 0x432dff
mov dword [eax], 8
mov eax, dword [esp + 0x424]
test eax, eax
je 0x432e10
mov dword [eax], 1
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432e1e
mov byte [eax], 0x20
mov ebp, 1
cmp di, 4
jne 0x432e3d
mov eax, 0x40008
cmp edx, eax
mov ecx, 0x10385
ja 0x432e5d
jb 0x432e3d
cmp esi, ecx
jae 0x432e5d
cmp di, 5
jne 0x432e92
mov eax, GlobalAlloc
push eax
mov ecx, 0xa280385
push ecx
push edx
push esi
call fcn.00432440
add esp, 0x10
test eax, eax
jl 0x432e92
mov eax, dword [esp + 0x420]
test eax, eax
je 0x432e6e
mov dword [eax], 8
mov eax, dword [esp + 0x424]
test eax, eax
je 0x432e7f
mov dword [eax], 1
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432e8d
mov byte [eax], 0x61
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
jmp 0x432ea0
mov cl, byte [eax + ebx]
test cl, cl
je 0x432eaf
mov byte [eax], cl
inc eax
dec edx
jne 0x432ea0
jmp 0x432eb3
test edx, edx
jne 0x432eb4
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432ecb
inc eax
dec ecx
jne 0x432ec0
jmp 0x432eed
test ecx, ecx
je 0x432eed
mov eax, 0x200
sub eax, ecx
push str.mpg2splt.ax
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x20]
push eax
call fcn.00432320
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x432f56
mov edx, dword [esp + 0x14]
mov eax, 0x60003
cmp edx, eax
mov ecx, 0x10375
ja 0x432f21
jb 0x432f56
mov eax, dword [esp + 0x10]
cmp eax, ecx
ja 0x432f21
jb 0x432f56
mov eax, dword [esp + 0x420]
test eax, eax
je 0x432f32
mov dword [eax], 8
mov eax, dword [esp + 0x424]
test eax, eax
je 0x432f43
mov dword [eax], 1
mov eax, dword [esp + 0x428]
test eax, eax
je 0x432f51
mov byte [eax], 0x62
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
nop
mov cl, byte [eax + ebx]
test cl, cl
je 0x432f6f
mov byte [eax], cl
inc eax
dec edx
jne 0x432f60
jmp 0x432f73
test edx, edx
jne 0x432f74
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x432f8b
inc eax
dec ecx
jne 0x432f80
jmp 0x432fad
test ecx, ecx
je 0x432fad
mov eax, 0x200
sub eax, ecx
push str.dpnet.dll
mov ecx, 0x200
sub ecx, eax
push ecx
lea edx, [esp + eax + 0x20]
push edx
call fcn.00432320
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x43303f
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov esi, ecx
shr esi, 0x10
cmp si, 4
jne 0x432fea
mov eax, 0x40009
cmp ecx, eax
mov edx, 0x86
ja 0x43300a
jb 0x432fea
cmp edi, edx
jae 0x43300a
cmp si, 5
jne 0x43303f
mov eax, GlobalAlloc
push eax
mov edx, 0xe5d0086
push edx
push ecx
push edi
call fcn.00432440
add esp, 0x10
test eax, eax
jl 0x43303f
mov eax, dword [esp + 0x420]
test eax, eax
je 0x43301b
mov dword [eax], 8
mov eax, dword [esp + 0x424]
test eax, eax
je 0x43302c
mov dword [eax], 2
mov eax, dword [esp + 0x428]
test eax, eax
je 0x43303a
mov byte [eax], 0x20
mov ebp, 1
mov edx, 0x200
lea eax, [esp + 0x18]
pop esi
lea esp, [esp]
mov cl, byte [eax + ebx]
test cl, cl
je 0x43305f
mov byte [eax], cl
inc eax
dec edx
jne 0x433050
jmp 0x433063
test edx, edx
jne 0x433064
dec eax
mov byte [eax], 0
mov ecx, 0x200
lea eax, [esp + 0x14]
pop ebx
cmp byte [eax], 0
je 0x43307c
inc eax
dec ecx
jne 0x433071
jmp 0x43309e
test ecx, ecx
je 0x43309e
mov eax, 0x200
sub eax, ecx
push str.d3d9.dll
mov edx, 0x200
sub edx, eax
push edx
lea eax, [esp + eax + 0x18]
push eax
call fcn.00432320
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.00432370
add esp, 8
test eax, eax
jl 0x4330c7
mov eax, dword [esp + 0x418]
test eax, eax
je 0x4330dc
mov dword [eax], 9
jmp 0x4330dc
test ebp, ebp
jne 0x4330fb
mov edi, dword [esp + 0x418]
test edi, edi
je 0x4330dc
mov dword [edi], 0
mov eax, dword [esp + 0x41c]
test eax, eax
je 0x4330ed
mov dword [eax], 0
mov eax, dword [esp + 0x420]
test eax, eax
je 0x4330fb
mov byte [eax], 0x20
mov ecx, dword [esp + 0x410]
pop edi
xor eax, eax
pop ebp
call fcn.00435083
add esp, 0x40c
ret