Function at 0x45bbd0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x820
mov eax, dword [0x65afd4]
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 0x45c8f7
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 0x45bc5e
movzx eax, word [esi + ecx]
test ax, ax
je 0x45bc5e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45bc40
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 0x45bc84
add eax, 2
sub ecx, 1
jne 0x45bc76
test ecx, ecx
je 0x45bcc3
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45bdb5
mov ecx, dword [ebp - 0x818]
mov eax, dword [ebp - 0x81c]
cmp ecx, 0x40002
ja 0x45bcf9
jb 0x45bd31
cmp eax, 0x5f
ja 0x45bcf9
jb 0x45bd31
test edi, edi
je 0x45bd03
mov dword [edi], 1
test ebx, ebx
je 0x45bd0d
mov dword [ebx], 0
mov edx, dword [ebp - 0x810]
test edx, edx
je 0x45bd25
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
jmp 0x45bd37
mov edx, dword [ebp - 0x810]
cmp ecx, 0x40003
ja 0x45bd4a
jb 0x45bd7a
cmp eax, 0x448
ja 0x45bd4a
jb 0x45bd7a
test edi, edi
je 0x45bd54
mov dword [edi], 2
test ebx, ebx
je 0x45bd5e
mov dword [ebx], 0
test edx, edx
je 0x45bd70
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
cmp ecx, 0x40004
ja 0x45bd8b
jb 0x45bdb5
cmp eax, 0x44
ja 0x45bd8b
jb 0x45bdb5
test edi, edi
je 0x45bd95
mov dword [edi], 3
test ebx, ebx
je 0x45bd9f
mov dword [ebx], 0
test edx, edx
je 0x45bdab
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 0x45bdde
movzx eax, word [ecx + esi]
test ax, ax
je 0x45bdde
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45bdc0
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 0x45be04
add eax, 2
sub ecx, 1
jne 0x45bdf6
test ecx, ecx
je 0x45be43
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
mov ecx, 0x61
test eax, eax
js 0x45bea1
cmp dword [ebp - 0x818], 0x40004
ja 0x45be76
jb 0x45bea1
cmp dword [ebp - 0x81c], 0x46
ja 0x45be76
jb 0x45bea1
test edi, edi
je 0x45be80
mov dword [edi], 3
test ebx, ebx
je 0x45be8a
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45be97
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 0x45bece
movzx eax, word [ecx + esi]
test ax, ax
je 0x45bece
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45beb0
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 0x45bef4
add eax, 2
sub ecx, 1
jne 0x45bee6
test ecx, ecx
je 0x45bf33
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c029
mov ecx, dword [ebp - 0x818]
mov eax, dword [ebp - 0x81c]
cmp ecx, 0x40005
ja 0x45bf6b
jb 0x45bfa3
cmp eax, 0x9b
ja 0x45bf6b
jb 0x45bfa3
test edi, edi
je 0x45bf75
mov dword [edi], 5
test ebx, ebx
je 0x45bf7f
mov dword [ebx], 0
mov edx, dword [ebp - 0x810]
test edx, edx
je 0x45bf97
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
jmp 0x45bfa9
mov edx, dword [ebp - 0x810]
cmp ecx, 0x40006
ja 0x45bfbc
jb 0x45c029
cmp eax, 0x13e
ja 0x45bfbc
jb 0x45bfec
test edi, edi
je 0x45bfc6
mov dword [edi], 6
test ebx, ebx
je 0x45bfd0
mov dword [ebx], 0
test edx, edx
je 0x45bfe2
mov edi, 0x20
mov word [edx], di
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x814], 1
cmp ecx, 0x40006
ja 0x45bfff
jb 0x45c029
cmp eax, 0x1b4
ja 0x45bfff
jb 0x45c029
test edi, edi
je 0x45c009
mov dword [edi], 6
test ebx, ebx
je 0x45c013
mov dword [ebx], 1
test edx, edx
je 0x45c01f
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 0x45c052
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c052
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c034
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 0x45c07e
add eax, 2
sub ecx, 1
jne 0x45c070
test ecx, ecx
je 0x45c0bd
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c11e
cmp dword [ebp - 0x818], 0x40006
ja 0x45c0ee
jb 0x45c11e
cmp dword [ebp - 0x81c], 0x30206
ja 0x45c0ee
jb 0x45c11e
test edi, edi
je 0x45c0f8
mov dword [edi], 6
test ebx, ebx
je 0x45c102
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c114
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 0x45c14e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c14e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c130
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 0x45c174
add eax, 2
sub ecx, 1
jne 0x45c166
test ecx, ecx
je 0x45c1b3
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c214
cmp dword [ebp - 0x818], 0x40007
ja 0x45c1e4
jb 0x45c214
cmp dword [ebp - 0x81c], 0x2bc
ja 0x45c1e4
jb 0x45c214
test edi, edi
je 0x45c1ee
mov dword [edi], 7
test ebx, ebx
je 0x45c1f8
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c20a
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 0x45c23e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c23e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c220
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 0x45c264
add eax, 2
sub ecx, 1
jne 0x45c256
test ecx, ecx
je 0x45c2a3
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c304
cmp dword [ebp - 0x818], 0x40007
ja 0x45c2d4
jb 0x45c304
cmp dword [ebp - 0x81c], 0x2cc
ja 0x45c2d4
jb 0x45c304
test edi, edi
je 0x45c2de
mov dword [edi], 7
test ebx, ebx
je 0x45c2e8
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c2fa
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 0x45c32e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c32e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c310
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 0x45c354
add eax, 2
sub ecx, 1
jne 0x45c346
test ecx, ecx
je 0x45c393
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c42f
mov edx, dword [ebp - 0x818]
mov ecx, edx
mov edi, dword [ebp - 0x81c]
shr ecx, 0x10
cmp cx, 4
jne 0x45c3db
push 0x40008
push 0x190
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
jns 0x45c3f9
cmp cx, 5
jne 0x45c42f
push 0x50001
push 0x8d20190
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
js 0x45c42f
mov edi, dword [ebp - 0x820]
test edi, edi
je 0x45c409
mov dword [edi], 8
test ebx, ebx
je 0x45c413
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c425
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 0x45c45e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c45e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c440
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 0x45c484
add eax, 2
sub ecx, 1
jne 0x45c476
test ecx, ecx
je 0x45c4c3
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c5d9
mov edx, dword [ebp - 0x818]
mov ecx, edx
mov edi, dword [ebp - 0x81c]
shr ecx, 0x10
cmp cx, 4
jne 0x45c50b
push 0x40008
push 0x10371
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
jns 0x45c529
cmp cx, 5
jne 0x45c565
push 0x50001
push 0xa280371
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
js 0x45c565
mov eax, dword [ebp - 0x820]
test eax, eax
je 0x45c539
mov dword [eax], 8
test ebx, ebx
je 0x45c543
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c55b
mov edx, 0x20
mov word [eax], dx
mov edx, dword [ebp - 0x818]
mov dword [ebp - 0x814], 1
cmp cx, 4
jne 0x45c583
push 0x40008
push 0x10385
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
jns 0x45c5a1
cmp cx, 5
jne 0x45c5d9
push 0x50001
push 0xa280385
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
js 0x45c5d9
mov edi, dword [ebp - 0x820]
test edi, edi
je 0x45c5b1
mov dword [edi], 8
test ebx, ebx
je 0x45c5bb
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c5cd
mov ecx, 0x61
mov word [eax], cx
mov dword [ebp - 0x814], 1
jmp 0x45c5df
mov edi, dword [ebp - 0x820]
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop word [eax + eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45c60e
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c60e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c5f0
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 0x45c634
add eax, 2
sub ecx, 1
jne 0x45c626
test ecx, ecx
je 0x45c673
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c6d4
cmp dword [ebp - 0x818], 0x60003
ja 0x45c6a4
jb 0x45c6d4
cmp dword [ebp - 0x81c], 0x10375
ja 0x45c6a4
jb 0x45c6d4
test edi, edi
je 0x45c6ae
mov dword [edi], 8
test ebx, ebx
je 0x45c6b8
mov dword [ebx], 1
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c6ca
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 0x45c6fe
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c6fe
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c6e0
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 0x45c724
add eax, 2
sub ecx, 1
jne 0x45c716
test ecx, ecx
je 0x45c763
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c801
mov edx, dword [ebp - 0x818]
mov ecx, edx
mov edi, dword [ebp - 0x81c]
shr ecx, 0x10
cmp cx, 4
jne 0x45c7ab
push 0x40009
push 0x86
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
jns 0x45c7c9
cmp cx, 5
jne 0x45c801
push 0x50002
push 0xe5d0086
push edx
push edi
call fcn.0045c9f0
add esp, 0x10
test eax, eax
js 0x45c801
mov edi, dword [ebp - 0x820]
test edi, edi
je 0x45c7d9
mov dword [edi], 8
test ebx, ebx
je 0x45c7e3
mov dword [ebx], 2
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c7f5
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x814], 1
jmp 0x45c807
mov edi, dword [ebp - 0x820]
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45c830
movzx eax, word [ecx + esi]
test ax, ax
je 0x45c830
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45c812
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 0x45c856
add eax, 2
sub ecx, 1
jne 0x45c848
test ecx, ecx
je 0x45c895
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.0042c640
lea edx, [ebp - 0x81c]
lea ecx, [ebp - 0x40c]
call fcn.0045c930
test eax, eax
js 0x45c8e3
test edi, edi
je 0x45c8b4
mov dword [edi], 9
test ebx, ebx
je 0x45c8be
mov dword [ebx], 0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45c912
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.005a8a56
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x814], 0
jne 0x45c912
mov esi, dword [ebp - 0x810]
mov ecx, 0x20
test edi, edi
je 0x45c901
mov dword [edi], 0
test ebx, ebx
je 0x45c90b
mov dword [ebx], 0
test esi, esi
je 0x45c912
mov word [esi], cx
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005a8a56
mov esp, ebp
pop ebp
ret