Function at 0x45b200
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x820
mov eax, dword [0x65bfd4]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x80c]
push edi
push 0x104
mov edi, ecx
mov dword [ebp - 0x810], esi
push eax
mov ebx, edx
mov dword [ebp - 0x820], edi
mov dword [ebp - 0x814], 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, 0x20
test eax, eax
je 0x45bf27
xor eax, eax
lea ecx, [ebp - 0x40c]
mov word [ebp - 0x606], ax
lea esi, [ebp - 0x80c]
mov eax, ecx
mov edx, 0x200
sub esi, eax
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45b28e
movzx eax, word [esi + ecx]
test ax, ax
je 0x45b28e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45b270
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45b2b4
add eax, 2
sub ecx, 1
jne 0x45b2a6
test ecx, ecx
je 0x45b2f3
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.ddraw.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45b3e5
mov ecx, dword [ebp - 0x818]
mov eax, dword [ebp - 0x81c]
cmp ecx, 0x40002
ja 0x45b329
jb 0x45b361
cmp eax, 0x5f
ja 0x45b329
jb 0x45b361
test edi, edi
je 0x45b333
mov dword [edi], 1
test ebx, ebx
je 0x45b33d
mov dword [ebx], 0
mov edx, dword [ebp - 0x810]
test edx, edx
je 0x45b355
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
jmp 0x45b367
mov edx, dword [ebp - 0x810]
cmp ecx, 0x40003
ja 0x45b37a
jb 0x45b3aa
cmp eax, 0x448
ja 0x45b37a
jb 0x45b3aa
test edi, edi
je 0x45b384
mov dword [edi], 2
test ebx, ebx
je 0x45b38e
mov dword [ebx], 0
test edx, edx
je 0x45b3a0
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
cmp ecx, 0x40004
ja 0x45b3bb
jb 0x45b3e5
cmp eax, 0x44
ja 0x45b3bb
jb 0x45b3e5
test edi, edi
je 0x45b3c5
mov dword [edi], 3
test ebx, ebx
je 0x45b3cf
mov dword [ebx], 0
test edx, edx
je 0x45b3db
mov eax, 0x20
mov word [edx], ax
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45b40e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45b40e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45b3f0
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45b434
add eax, 2
sub ecx, 1
jne 0x45b426
test ecx, ecx
je 0x45b473
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.d3drg8x.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
mov ecx, 0x61
test eax, eax
js 0x45b4d1
cmp dword [ebp - 0x818], 0x40004
ja 0x45b4a6
jb 0x45b4d1
cmp dword [ebp - 0x81c], 0x46
ja 0x45b4a6
jb 0x45b4d1
test edi, edi
je 0x45b4b0
mov dword [edi], 3
test ebx, ebx
je 0x45b4ba
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45b4c7
mov word [eax], cx
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop dword [eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45b4fe
movzx eax, word [ecx + esi]
test ax, ax
je 0x45b4fe
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45b4e0
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45b524
add eax, 2
sub ecx, 1
jne 0x45b516
test ecx, ecx
je 0x45b563
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.ddraw.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45b659
mov ecx, dword [ebp - 0x818]
mov eax, dword [ebp - 0x81c]
cmp ecx, 0x40005
ja 0x45b59b
jb 0x45b5d3
cmp eax, 0x9b
ja 0x45b59b
jb 0x45b5d3
test edi, edi
je 0x45b5a5
mov dword [edi], 5
test ebx, ebx
je 0x45b5af
mov dword [ebx], 0
mov edx, dword [ebp - 0x810]
test edx, edx
je 0x45b5c7
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
jmp 0x45b5d9
mov edx, dword [ebp - 0x810]
cmp ecx, 0x40006
ja 0x45b5ec
jb 0x45b659
cmp eax, 0x13e
ja 0x45b5ec
jb 0x45b61c
test edi, edi
je 0x45b5f6
mov dword [edi], 6
test ebx, ebx
je 0x45b600
mov dword [ebx], 0
test edx, edx
je 0x45b612
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
cmp ecx, 0x40006
ja 0x45b62f
jb 0x45b659
cmp eax, 0x1b4
ja 0x45b62f
jb 0x45b659
test edi, edi
je 0x45b639
mov dword [edi], 6
test ebx, ebx
je 0x45b643
mov dword [ebx], 1
test edx, edx
je 0x45b64f
mov eax, 0x20
mov word [edx], ax
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45b682
movzx eax, word [ecx + esi]
test ax, ax
je 0x45b682
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45b664
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
nop word [eax + eax]
cmp word [eax], 0
je 0x45b6ae
add eax, 2
sub ecx, 1
jne 0x45b6a0
test ecx, ecx
je 0x45b6ed
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.dplayx.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45b74e
cmp dword [ebp - 0x818], 0x40006
ja 0x45b71e
jb 0x45b74e
cmp dword [ebp - 0x81c], 0x30206
ja 0x45b71e
jb 0x45b74e
test edi, edi
je 0x45b728
mov dword [edi], 6
test ebx, ebx
je 0x45b732
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45b744
mov ecx, 0x61
mov word [eax], cx
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop dword [eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45b77e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45b77e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45b760
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45b7a4
add eax, 2
sub ecx, 1
jne 0x45b796
test ecx, ecx
je 0x45b7e3
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.ddraw.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45b844
cmp dword [ebp - 0x818], 0x40007
ja 0x45b814
jb 0x45b844
cmp dword [ebp - 0x81c], 0x2bc
ja 0x45b814
jb 0x45b844
test edi, edi
je 0x45b81e
mov dword [edi], 7
test ebx, ebx
je 0x45b828
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45b83a
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45b86e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45b86e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45b850
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45b894
add eax, 2
sub ecx, 1
jne 0x45b886
test ecx, ecx
je 0x45b8d3
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.dinput.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45b934
cmp dword [ebp - 0x818], 0x40007
ja 0x45b904
jb 0x45b934
cmp dword [ebp - 0x81c], 0x2cc
ja 0x45b904
jb 0x45b934
test edi, edi
je 0x45b90e
mov dword [edi], 7
test ebx, ebx
je 0x45b918
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45b92a
mov ecx, 0x61
mov word [eax], cx
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45b95e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45b95e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45b940
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45b984
add eax, 2
sub ecx, 1
jne 0x45b976
test ecx, ecx
je 0x45b9c3
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.ddraw.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45ba5f
mov edx, dword [ebp - 0x818]
mov ecx, edx
mov edi, dword [ebp - 0x81c]
shr ecx, 0x10
cmp cx, 4
jne 0x45ba0b
push 0x40008
push 0x190
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
jns 0x45ba29
cmp cx, 5
jne 0x45ba5f
push 0x50001
push 0x8d20190
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
js 0x45ba5f
mov edi, dword [ebp - 0x820]
test edi, edi
je 0x45ba39
mov dword [edi], 8
test ebx, ebx
je 0x45ba43
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45ba55
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop word [eax + eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45ba8e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45ba8e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45ba70
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45bab4
add eax, 2
sub ecx, 1
jne 0x45baa6
test ecx, ecx
je 0x45baf3
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.d3d8.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45bc09
mov edx, dword [ebp - 0x818]
mov ecx, edx
mov edi, dword [ebp - 0x81c]
shr ecx, 0x10
cmp cx, 4
jne 0x45bb3b
push 0x40008
push 0x10371
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
jns 0x45bb59
cmp cx, 5
jne 0x45bb95
push 0x50001
push 0xa280371
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
js 0x45bb95
mov eax, dword [ebp - 0x820]
test eax, eax
je 0x45bb69
mov dword [eax], 8
test ebx, ebx
je 0x45bb73
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45bb8b
mov edx, 0x20
mov word [eax], dx
mov edx, dword [ebp - 0x818]
mov dword [ebp - 0x814], 1
cmp cx, 4
jne 0x45bbb3
push 0x40008
push 0x10385
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
jns 0x45bbd1
cmp cx, 5
jne 0x45bc09
push 0x50001
push 0xa280385
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
js 0x45bc09
mov edi, dword [ebp - 0x820]
test edi, edi
je 0x45bbe1
mov dword [edi], 8
test ebx, ebx
je 0x45bbeb
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45bbfd
mov ecx, 0x61
mov word [eax], cx
mov dword [ebp - 0x814], 1
jmp 0x45bc0f
mov edi, dword [ebp - 0x820]
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop word [eax + eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45bc3e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45bc3e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45bc20
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45bc64
add eax, 2
sub ecx, 1
jne 0x45bc56
test ecx, ecx
je 0x45bca3
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.mpg2splt.ax
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45bd04
cmp dword [ebp - 0x818], 0x60003
ja 0x45bcd4
jb 0x45bd04
cmp dword [ebp - 0x81c], 0x10375
ja 0x45bcd4
jb 0x45bd04
test edi, edi
je 0x45bcde
mov dword [edi], 8
test ebx, ebx
je 0x45bce8
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45bcfa
mov ecx, 0x62
mov word [eax], cx
mov dword [ebp - 0x814], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45bd2e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45bd2e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45bd10
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45bd54
add eax, 2
sub ecx, 1
jne 0x45bd46
test ecx, ecx
je 0x45bd93
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.dpnet.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45be31
mov edx, dword [ebp - 0x818]
mov ecx, edx
mov edi, dword [ebp - 0x81c]
shr ecx, 0x10
cmp cx, 4
jne 0x45bddb
push 0x40009
push 0x86
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
jns 0x45bdf9
cmp cx, 5
jne 0x45be31
push 0x50002
push 0xe5d0086
push edx
push edi
call fcn.0045c020
add esp, 0x10
test eax, eax
js 0x45be31
mov edi, dword [ebp - 0x820]
test edi, edi
je 0x45be09
mov dword [edi], 8
test ebx, ebx
je 0x45be13
mov dword [ebx], 2
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45be25
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x814], 1
jmp 0x45be37
mov edi, dword [ebp - 0x820]
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45be60
movzx eax, word [ecx + esi]
test ax, ax
je 0x45be60
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45be42
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x200
lea eax, [ebp - 0x40c]
cmp word [eax], 0
je 0x45be86
add eax, 2
sub ecx, 1
jne 0x45be78
test ecx, ecx
je 0x45bec5
mov edx, ecx
lea eax, [ecx - 0x200]
neg edx
push SysReAllocString
sbb edx, edx
and edx, eax
mov eax, 0x200
sub eax, ecx
add edx, 0x200
push str.d3d9.dll
push ecx
add eax, eax
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x40c]
add ecx, eax
call fcn.0042c8c0
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045bf60
test eax, eax
js 0x45bf13
test edi, edi
je 0x45bee4
mov dword [edi], 9
test ebx, ebx
je 0x45beee
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45bf42
mov ecx, 0x20
mov word [eax], cx
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.005a909b
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x814], 0
jne 0x45bf42
mov esi, dword [ebp - 0x810]
mov ecx, 0x20
test edi, edi
je 0x45bf31
mov dword [edi], 0
test ebx, ebx
je 0x45bf3b
mov dword [ebx], 0
test esi, esi
je 0x45bf42
mov word [esi], cx
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005a909b
mov esp, ebp
pop ebp
ret