Function at 0x468880
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x828
mov eax, dword [0x672014]
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, edx
mov dword [ebp - 0x814], esi
mov ebx, ecx
mov dword [ebp - 0x818], edi
push eax
mov dword [ebp - 0x810], ebx
mov dword [ebp - 0x81c], 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, 0x20
test eax, eax
je 0x4697e5
xor eax, eax
lea ecx, [ebp - 0x40c]
mov word [ebp - 0x606], ax
lea ebx, [ebp - 0x80c]
mov eax, ecx
mov edx, 0x200
sub ebx, eax
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x468914
movzx eax, word [ebx + ecx]
test ax, ax
je 0x468914
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4688f6
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
nop dword [eax]
cmp word [eax], cx
je 0x46893d
add eax, 2
sub edx, 1
jne 0x468930
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, 0x200
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x4689ac
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x46899f
lea eax, [esi + 0x7ffffdff]
mov edi, str.ddraw.dll
add eax, edx
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x468999
movzx esi, word [edi + ecx]
test si, si
je 0x468999
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x468980
mov edi, dword [ebp - 0x818]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x468aaa
mov ecx, dword [ebp - 0x820]
mov eax, dword [ebp - 0x824]
cmp ecx, 0x40002
ja 0x4689e2
jb 0x468a20
cmp eax, 0x5f
ja 0x4689e2
jb 0x468a20
mov edx, dword [ebp - 0x810]
test edx, edx
je 0x4689f2
mov dword [edx], 1
test edi, edi
je 0x4689fc
mov dword [edi], 0
mov esi, dword [ebp - 0x814]
test esi, esi
je 0x468a14
mov edx, 0x20
mov word [esi], dx
mov edx, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
jmp 0x468a2c
mov esi, dword [ebp - 0x814]
mov edx, dword [ebp - 0x810]
cmp ecx, 0x40003
ja 0x468a3f
jb 0x468a6f
cmp eax, 0x448
ja 0x468a3f
jb 0x468a6f
test edx, edx
je 0x468a49
mov dword [edx], 2
test edi, edi
je 0x468a53
mov dword [edi], 0
test esi, esi
je 0x468a65
mov edx, 0x20
mov word [esi], dx
mov edx, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
cmp ecx, 0x40004
ja 0x468a80
jb 0x468aaa
cmp eax, 0x44
ja 0x468a80
jb 0x468aaa
test edx, edx
je 0x468a8a
mov dword [edx], 3
test edi, edi
je 0x468a94
mov dword [edi], 0
test esi, esi
je 0x468aa0
mov eax, 0x20
mov word [esi], ax
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x468ad3
movzx eax, word [ebx + ecx]
test ax, ax
je 0x468ad3
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x468ab5
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
nop dword [eax + eax]
cmp word [eax], cx
je 0x468afd
add eax, 2
sub edx, 1
jne 0x468af0
xor eax, eax
mov ecx, 0x80070057
test edx, edx
mov edi, 0x200
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x468b6b
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x468b5e
lea eax, [esi + 0x7ffffdff]
mov edi, str.d3drg8x.dll
add eax, edx
sub edi, ecx
nop dword [eax + eax]
test eax, eax
je 0x468b59
movzx esi, word [edi + ecx]
test si, si
je 0x468b59
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x468b40
mov edi, 0x200
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
mov ecx, 0x61
test eax, eax
js 0x468bd8
mov eax, dword [ebp - 0x820]
cmp eax, 0x40004
ja 0x468ba1
jb 0x468bd8
mov eax, dword [ebp - 0x824]
cmp eax, 0x46
ja 0x468ba1
jb 0x468bd8
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x468bb1
mov dword [eax], 3
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x468bc1
mov dword [eax], 0
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x468bce
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x468c01
movzx eax, word [ecx + ebx]
test ax, ax
je 0x468c01
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x468be3
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
nop dword [eax]
cmp word [eax], cx
je 0x468c2d
add eax, 2
sub edx, 1
jne 0x468c20
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x468c8c
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x468c7f
lea eax, [esi + 0x7ffffdff]
mov edi, str.ddraw.dll
add eax, edx
sub edi, ecx
test eax, eax
je 0x468c7f
movzx esi, word [edi + ecx]
test si, si
je 0x468c7f
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x468c66
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x468d9a
mov ecx, dword [ebp - 0x820]
mov eax, dword [ebp - 0x824]
cmp ecx, 0x40005
ja 0x468cc4
jb 0x468d08
cmp eax, 0x9b
ja 0x468cc4
jb 0x468d08
mov esi, dword [ebp - 0x810]
test esi, esi
je 0x468cd4
mov dword [esi], 5
mov edx, dword [ebp - 0x818]
test edx, edx
je 0x468ce4
mov dword [edx], 0
mov edi, dword [ebp - 0x814]
test edi, edi
je 0x468cfc
mov esi, 0x20
mov word [edi], si
mov esi, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
jmp 0x468d1a
mov edi, dword [ebp - 0x814]
mov esi, dword [ebp - 0x810]
mov edx, dword [ebp - 0x818]
cmp ecx, 0x40006
ja 0x468d2d
jb 0x468d9a
cmp eax, 0x13e
ja 0x468d2d
jb 0x468d5d
test esi, esi
je 0x468d37
mov dword [esi], 6
test edx, edx
je 0x468d41
mov dword [edx], 0
test edi, edi
je 0x468d53
mov esi, 0x20
mov word [edi], si
mov esi, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
cmp ecx, 0x40006
ja 0x468d70
jb 0x468d9a
cmp eax, 0x1b4
ja 0x468d70
jb 0x468d9a
test esi, esi
je 0x468d7a
mov dword [esi], 6
test edx, edx
je 0x468d84
mov dword [edx], 1
test edi, edi
je 0x468d90
mov eax, 0x20
mov word [edi], ax
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x468dc3
movzx eax, word [ecx + ebx]
test ax, ax
je 0x468dc3
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x468da5
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
nop dword [eax + eax]
cmp word [eax], cx
je 0x468ded
add eax, 2
sub edx, 1
jne 0x468de0
xor eax, eax
mov ecx, 0x80070057
test edx, edx
mov edi, 0x200
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x468e5b
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x468e4e
lea eax, [esi + 0x7ffffdff]
mov edi, str.dplayx.dll
add eax, edx
sub edi, ecx
nop dword [eax + eax]
test eax, eax
je 0x468e49
movzx esi, word [edi + ecx]
test si, si
je 0x468e49
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x468e30
mov edi, 0x200
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x468eca
mov eax, dword [ebp - 0x820]
cmp eax, 0x40006
ja 0x468e8e
jb 0x468eca
mov eax, dword [ebp - 0x824]
cmp eax, 0x30206
ja 0x468e8e
jb 0x468eca
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x468e9e
mov dword [eax], 6
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x468eae
mov dword [eax], 1
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x468ec0
mov ecx, 0x61
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x468ef3
movzx eax, word [ecx + ebx]
test ax, ax
je 0x468ef3
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x468ed5
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
nop dword [eax + eax]
cmp word [eax], cx
je 0x468f1d
add eax, 2
sub edx, 1
jne 0x468f10
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x468f81
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x468f74
lea eax, [esi + 0x7ffffdff]
mov edi, str.ddraw.dll
add eax, edx
sub edi, ecx
test eax, eax
je 0x468f6f
movzx esi, word [edi + ecx]
test si, si
je 0x468f6f
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x468f56
mov edi, 0x200
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x468ff0
mov eax, dword [ebp - 0x820]
cmp eax, 0x40007
ja 0x468fb4
jb 0x468ff0
mov eax, dword [ebp - 0x824]
cmp eax, 0x2bc
ja 0x468fb4
jb 0x468ff0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x468fc4
mov dword [eax], 7
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x468fd4
mov dword [eax], 0
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x468fe6
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop dword [eax + eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x46901e
movzx eax, word [ecx + ebx]
test ax, ax
je 0x46901e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x469000
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
cmp word [eax], cx
je 0x469043
add eax, 2
sub edx, 1
jne 0x469036
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x4690ab
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x46909e
lea eax, [esi + 0x7ffffdff]
mov edi, str.dinput.dll
add eax, edx
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x469099
movzx esi, word [ecx + edi]
test si, si
je 0x469099
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x469080
mov edi, 0x200
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x46911a
mov eax, dword [ebp - 0x820]
cmp eax, 0x40007
ja 0x4690de
jb 0x46911a
mov eax, dword [ebp - 0x824]
cmp eax, 0x2cc
ja 0x4690de
jb 0x46911a
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x4690ee
mov dword [eax], 7
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x4690fe
mov dword [eax], 0
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x469110
mov ecx, 0x61
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x469143
movzx eax, word [ecx + ebx]
test ax, ax
je 0x469143
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x469125
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
nop dword [eax + eax]
cmp word [eax], cx
je 0x46916d
add eax, 2
sub edx, 1
jne 0x469160
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x4691cc
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4691bf
lea eax, [esi + 0x7ffffdff]
mov edi, str.ddraw.dll
add eax, edx
sub edi, ecx
test eax, eax
je 0x4691bf
movzx esi, word [ecx + edi]
test si, si
je 0x4691bf
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4691a6
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x46926e
mov esi, dword [ebp - 0x820]
mov edx, esi
mov edi, dword [ebp - 0x824]
shr edx, 0x10
cmp dx, 4
jne 0x469214
push 0x40008
push 0x190
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
jns 0x469232
cmp dx, 5
jne 0x46926e
push 0x50001
push 0x8d20190
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
js 0x46926e
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x469242
mov dword [eax], 8
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x469252
mov dword [eax], 0
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x469264
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop dword [eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x46929e
movzx eax, word [ecx + ebx]
test ax, ax
je 0x46929e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x469280
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
cmp word [eax], cx
je 0x4692c3
add eax, 2
sub edx, 1
jne 0x4692b6
xor eax, eax
mov ecx, 0x80070057
test edx, edx
mov edi, 0x200
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x469327
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x46931a
lea eax, [esi + 0x7ffffdff]
mov edi, str.d3d8.dll
add eax, edx
sub edi, ecx
test eax, eax
je 0x46931a
movzx esi, word [ecx + edi]
test si, si
je 0x46931a
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x469301
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x469441
mov esi, dword [ebp - 0x820]
mov edx, esi
mov edi, dword [ebp - 0x824]
shr edx, 0x10
cmp dx, 4
jne 0x46936f
push 0x40008
push 0x10371
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
jns 0x46938d
cmp dx, 5
jne 0x4693c9
push 0x50001
push 0xa280371
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
js 0x4693c9
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x46939d
mov dword [eax], 8
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x4693ad
mov dword [eax], 1
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x4693bf
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x81c], 1
cmp dx, 4
jne 0x4693e7
push 0x40008
push 0x10385
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
jns 0x469405
cmp dx, 5
jne 0x469441
push 0x50001
push 0xa280385
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
js 0x469441
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x469415
mov dword [eax], 8
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x469425
mov dword [eax], 1
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x469437
mov ecx, 0x61
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop dword [eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x46946e
movzx eax, word [ecx + ebx]
test ax, ax
je 0x46946e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x469450
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
cmp word [eax], cx
je 0x469493
add eax, 2
sub edx, 1
jne 0x469486
xor eax, eax
mov ecx, 0x80070057
test edx, edx
mov edi, 0x200
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x4694fc
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x4694ef
lea eax, [esi + 0x7ffffdff]
mov edi, str.mpg2splt.ax
add eax, edx
sub edi, ecx
test eax, eax
je 0x4694ea
movzx esi, word [ecx + edi]
test si, si
je 0x4694ea
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4694d1
mov edi, 0x200
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x46956b
mov eax, dword [ebp - 0x820]
cmp eax, 0x60003
ja 0x46952f
jb 0x46956b
mov eax, dword [ebp - 0x824]
cmp eax, 0x10375
ja 0x46952f
jb 0x46956b
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x46953f
mov dword [eax], 8
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x46954f
mov dword [eax], 1
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x469561
mov ecx, 0x62
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x469594
movzx eax, word [ecx + ebx]
test ax, ax
je 0x469594
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x469576
test edx, edx
lea eax, [ecx - 2]
mov edx, 0x200
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x40c]
nop dword [eax]
cmp word [eax], cx
je 0x4695bd
add eax, 2
sub edx, 1
jne 0x4695b0
xor eax, eax
mov ecx, 0x80070057
test edx, edx
cmovne ecx, eax
mov eax, edi
sub eax, edx
xor esi, esi
test edx, edx
cmovne esi, eax
test ecx, ecx
js 0x46961c
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x46960f
lea eax, [esi + 0x7ffffdff]
mov edi, str.dpnet.dll
add eax, edx
sub edi, ecx
test eax, eax
je 0x46960f
movzx esi, word [ecx + edi]
test si, si
je 0x46960f
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x4695f6
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x4696c0
mov esi, dword [ebp - 0x820]
mov edx, esi
mov edi, dword [ebp - 0x824]
shr edx, 0x10
cmp dx, 4
jne 0x469664
push 0x40009
push 0x86
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
jns 0x469682
cmp dx, 5
jne 0x4696c0
push 0x50002
push 0xe5d0086
push esi
push edi
call fcn.004698e0
add esp, 0x10
test eax, eax
js 0x4696c0
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x469692
mov dword [eax], 8
mov edi, dword [ebp - 0x818]
test edi, edi
je 0x4696a2
mov dword [edi], 2
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x4696b4
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x81c], 1
jmp 0x4696c6
mov edi, dword [ebp - 0x818]
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x4696ef
movzx eax, word [ecx + ebx]
test ax, ax
je 0x4696ef
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4696d1
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 0x469715
add eax, 2
sub ecx, 1
jne 0x469707
xor eax, eax
mov esi, 0x80070057
test ecx, ecx
mov ebx, 0x200
cmovne esi, eax
mov eax, ebx
sub eax, ecx
xor edx, edx
test ecx, ecx
cmovne edx, eax
test esi, esi
js 0x469777
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + edx*2]
sub ebx, edx
je 0x46976a
lea eax, [edx + 0x7ffffdff]
mov esi, str.d3d9.dll
add eax, ebx
sub esi, ecx
test eax, eax
je 0x46976a
movzx edx, word [ecx + esi]
test dx, dx
je 0x46976a
mov word [ecx], dx
dec eax
add ecx, 2
sub ebx, 1
jne 0x469751
test ebx, ebx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x824]
lea ecx, [ebp - 0x40c]
call fcn.00469820
test eax, eax
js 0x4697cb
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x46979c
mov dword [eax], 9
test edi, edi
je 0x4697a6
mov dword [edi], 0
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x469800
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.005b5208
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x81c], 0
jne 0x469800
mov ebx, dword [ebp - 0x810]
mov ecx, 0x20
mov esi, dword [ebp - 0x814]
test ebx, ebx
je 0x4697ef
mov dword [ebx], 0
test edi, edi
je 0x4697f9
mov dword [edi], 0
test esi, esi
je 0x469800
mov word [esi], cx
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005b5208
mov esp, ebp
pop ebp
ret