Function at 0x45cc90
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x830
mov eax, dword [0x660ff8]
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 - 0x818], esi
mov ebx, ecx
mov dword [ebp - 0x814], 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 0x45dbdc
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 0x45cd24
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45cd24
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45cd06
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 dword [eax]
cmp word [eax], 0
je 0x45cd4e
add eax, 2
sub ecx, 1
jne 0x45cd40
mov edx, 0x200
mov esi, ecx
mov eax, edx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45cdac
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45cd9f
mov edi, str.ddraw.dll
mov eax, SysReAllocString
sub edi, ecx
nop dword [eax]
test eax, eax
je 0x45cd99
movzx esi, word [edi + ecx]
test si, si
je 0x45cd99
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45cd80
mov edi, dword [ebp - 0x814]
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.0045dc10
test eax, eax
js 0x45cec8
mov ecx, dword [ebp - 0x820]
mov eax, dword [ebp - 0x824]
mov dword [ebp - 0x82c], 0x5f
cmp ecx, 0x40002
ja 0x45cdec
jb 0x45ce2a
cmp eax, 0x5f
ja 0x45cdec
jb 0x45ce2a
mov edx, dword [ebp - 0x810]
test edx, edx
je 0x45cdfc
mov dword [edx], 1
test edi, edi
je 0x45ce06
mov dword [edi], 0
mov esi, dword [ebp - 0x818]
test esi, esi
je 0x45ce1e
mov edx, 0x20
mov word [esi], dx
mov edx, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
jmp 0x45ce36
mov esi, dword [ebp - 0x818]
mov edx, dword [ebp - 0x810]
mov dword [ebp - 0x82c], 0x448
cmp ecx, 0x40003
ja 0x45ce53
jb 0x45ce83
cmp eax, 0x448
ja 0x45ce53
jb 0x45ce83
test edx, edx
je 0x45ce5d
mov dword [edx], 2
test edi, edi
je 0x45ce67
mov dword [edi], 0
test esi, esi
je 0x45ce79
mov edx, 0x20
mov word [esi], dx
mov edx, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
mov dword [ebp - 0x82c], 0x44
cmp ecx, 0x40004
ja 0x45ce9e
jb 0x45cec8
cmp eax, 0x44
ja 0x45ce9e
jb 0x45cec8
test edx, edx
je 0x45cea8
mov dword [edx], 3
test edi, edi
je 0x45ceb2
mov dword [edi], 0
test esi, esi
je 0x45cebe
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 0x45cef1
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45cef1
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45ced3
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 dword [eax]
cmp word [eax], 0
je 0x45cf1e
add eax, 2
sub ecx, 1
jne 0x45cf10
mov edi, 0x200
mov esi, ecx
mov eax, edi
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45cf7b
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45cf6e
mov edi, str.d3drg8x.dll
mov eax, SysReAllocString
sub edi, ecx
nop
test eax, eax
je 0x45cf69
movzx esi, word [edi + ecx]
test si, si
je 0x45cf69
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45cf50
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.0045dc10
mov ecx, 0x61
test eax, eax
js 0x45cfef
cmp dword [ebp - 0x820], 0x40004
mov dword [ebp - 0x82c], 0x46
ja 0x45cfb8
jb 0x45cfef
cmp dword [ebp - 0x824], 0x46
ja 0x45cfb8
jb 0x45cfef
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45cfc8
mov dword [eax], 3
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45cfd8
mov dword [eax], 0
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45cfe5
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop word [eax + eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45d01e
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d01e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d000
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 0x45d044
add eax, 2
sub ecx, 1
jne 0x45d036
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45d096
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d089
mov edi, str.ddraw.dll
mov eax, SysReAllocString
sub edi, ecx
nop
test eax, eax
je 0x45d089
movzx esi, word [edi + ecx]
test si, si
je 0x45d089
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d070
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.0045dc10
test eax, eax
js 0x45d1c2
mov ecx, dword [ebp - 0x820]
mov eax, dword [ebp - 0x824]
mov dword [ebp - 0x82c], 0x9b
cmp ecx, 0x40005
ja 0x45d0d8
jb 0x45d11c
cmp eax, 0x9b
ja 0x45d0d8
jb 0x45d11c
mov esi, dword [ebp - 0x810]
test esi, esi
je 0x45d0e8
mov dword [esi], 5
mov edx, dword [ebp - 0x814]
test edx, edx
je 0x45d0f8
mov dword [edx], 0
mov edi, dword [ebp - 0x818]
test edi, edi
je 0x45d110
mov esi, 0x20
mov word [edi], si
mov esi, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
jmp 0x45d12e
mov edi, dword [ebp - 0x818]
mov esi, dword [ebp - 0x810]
mov edx, dword [ebp - 0x814]
mov dword [ebp - 0x82c], 0x13e
cmp ecx, 0x40006
ja 0x45d14b
jb 0x45d17b
cmp eax, 0x13e
ja 0x45d14b
jb 0x45d17b
test esi, esi
je 0x45d155
mov dword [esi], 6
test edx, edx
je 0x45d15f
mov dword [edx], 0
test edi, edi
je 0x45d171
mov esi, 0x20
mov word [edi], si
mov esi, dword [ebp - 0x810]
mov dword [ebp - 0x81c], 1
mov dword [ebp - 0x82c], 0x1b4
cmp ecx, 0x40006
ja 0x45d198
jb 0x45d1c2
cmp eax, 0x1b4
ja 0x45d198
jb 0x45d1c2
test esi, esi
je 0x45d1a2
mov dword [esi], 6
test edx, edx
je 0x45d1ac
mov dword [edx], 1
test edi, edi
je 0x45d1b8
mov eax, 0x20
mov word [edi], ax
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop dword [eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45d1ee
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d1ee
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d1d0
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 0x45d214
add eax, 2
sub ecx, 1
jne 0x45d206
mov edi, 0x200
mov esi, ecx
mov eax, edi
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45d26f
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d262
mov edi, str.dplayx.dll
mov eax, SysReAllocString
sub edi, ecx
test eax, eax
je 0x45d25d
movzx esi, word [edi + ecx]
test si, si
je 0x45d25d
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d244
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.0045dc10
test eax, eax
js 0x45d2e6
cmp dword [ebp - 0x820], 0x40006
mov dword [ebp - 0x82c], 0x30206
ja 0x45d2aa
jb 0x45d2e6
cmp dword [ebp - 0x824], 0x30206
ja 0x45d2aa
jb 0x45d2e6
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45d2ba
mov dword [eax], 6
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45d2ca
mov dword [eax], 1
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45d2dc
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 0x45d30f
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d30f
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d2f1
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 0x45d335
add eax, 2
sub ecx, 1
jne 0x45d327
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45d38b
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d37e
mov edi, str.ddraw.dll
mov eax, SysReAllocString
sub edi, ecx
test eax, eax
je 0x45d379
movzx esi, word [edi + ecx]
test si, si
je 0x45d379
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d360
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.0045dc10
test eax, eax
js 0x45d402
cmp dword [ebp - 0x820], 0x40007
mov dword [ebp - 0x82c], 0x2bc
ja 0x45d3c6
jb 0x45d402
cmp dword [ebp - 0x824], 0x2bc
ja 0x45d3c6
jb 0x45d402
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45d3d6
mov dword [eax], 7
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45d3e6
mov dword [eax], 0
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45d3f8
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 0x45d42e
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d42e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d410
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 0x45d454
add eax, 2
sub ecx, 1
jne 0x45d446
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45d4ab
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d49e
mov edi, str.dinput.dll
mov eax, SysReAllocString
sub edi, ecx
nop
test eax, eax
je 0x45d499
movzx esi, word [edi + ecx]
test si, si
je 0x45d499
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d480
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.0045dc10
test eax, eax
js 0x45d522
cmp dword [ebp - 0x820], 0x40007
mov dword [ebp - 0x82c], 0x2cc
ja 0x45d4e6
jb 0x45d522
cmp dword [ebp - 0x824], 0x2cc
ja 0x45d4e6
jb 0x45d522
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45d4f6
mov dword [eax], 7
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45d506
mov dword [eax], 0
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45d518
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 0x45d54e
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d54e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d530
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 0x45d574
add eax, 2
sub ecx, 1
jne 0x45d566
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45d5cb
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d5be
mov edi, str.ddraw.dll
mov eax, SysReAllocString
sub edi, ecx
nop
test eax, eax
je 0x45d5b9
movzx esi, word [edi + ecx]
test si, si
je 0x45d5b9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d5a0
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.0045dc10
test eax, eax
js 0x45d673
mov ecx, dword [ebp - 0x820]
mov eax, ecx
shr eax, 0x10
cmp ax, 4
jne 0x45d614
push 0x40008
push 0x190
push ecx
push dword [ebp - 0x824]
call fcn.0045dcd0
add esp, 0x10
test eax, eax
jns 0x45d637
jmp 0x45d673
cmp ax, 5
jne 0x45d673
push 0x50001
push 0x8d20190
push ecx
push dword [ebp - 0x824]
call fcn.0045dcd0
add esp, 0x10
test eax, eax
js 0x45d673
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45d647
mov dword [eax], 8
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45d657
mov dword [eax], 0
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45d669
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x81c], 1
mov edx, 0x200
lea ecx, [ebp - 0x40c]
nop
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45d69e
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d69e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d680
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 0x45d6c4
add eax, 2
sub ecx, 1
jne 0x45d6b6
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45d71b
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d70e
mov edi, str.d3d8.dll
mov eax, SysReAllocString
sub edi, ecx
nop
test eax, eax
je 0x45d709
movzx esi, word [ecx + edi]
test si, si
je 0x45d709
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d6f0
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.0045dc10
test eax, eax
js 0x45d841
mov edx, dword [ebp - 0x820]
mov ecx, edx
mov esi, dword [ebp - 0x824]
shr ecx, 0x10
cmp cx, 4
jne 0x45d765
push 0x40008
push 0x10371
push edx
push esi
call fcn.0045dcd0
add esp, 0x10
test eax, eax
jns 0x45d787
jmp 0x45d7cf
cmp cx, 5
jne 0x45d841
push 0x50001
push 0xa280371
push edx
push esi
call fcn.0045dcd0
add esp, 0x10
test eax, eax
js 0x45d7ed
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45d797
mov dword [eax], 8
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45d7a7
mov dword [eax], 1
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45d7bf
mov edx, 0x20
mov word [eax], dx
mov edx, dword [ebp - 0x820]
mov dword [ebp - 0x81c], 1
cmp cx, 4
jne 0x45d7e7
push 0x40008
push 0x10385
push edx
push esi
call fcn.0045dcd0
add esp, 0x10
test eax, eax
jns 0x45d805
cmp cx, 5
jne 0x45d841
push 0x50001
push 0xa280385
push edx
push esi
call fcn.0045dcd0
add esp, 0x10
test eax, eax
js 0x45d841
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45d815
mov dword [eax], 8
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45d825
mov dword [eax], 1
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45d837
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 0x45d86e
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d86e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d850
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 0x45d894
add eax, 2
sub ecx, 1
jne 0x45d886
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45d8eb
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d8de
mov edi, str.mpg2splt.ax
mov eax, SysReAllocString
sub edi, ecx
nop
test eax, eax
je 0x45d8d9
movzx esi, word [ecx + edi]
test si, si
je 0x45d8d9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d8c0
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.0045dc10
test eax, eax
js 0x45d962
cmp dword [ebp - 0x820], 0x60003
mov dword [ebp - 0x82c], 0x10375
ja 0x45d926
jb 0x45d962
cmp dword [ebp - 0x824], 0x10375
ja 0x45d926
jb 0x45d962
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45d936
mov dword [eax], 8
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x45d946
mov dword [eax], 1
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45d958
mov ecx, 0x62
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 0x45d98e
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45d98e
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45d970
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 0x45d9b4
add eax, 2
sub ecx, 1
jne 0x45d9a6
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x45da06
mov edx, edi
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x45d9f9
mov edi, str.dpnet.dll
mov eax, SysReAllocString
sub edi, ecx
nop
test eax, eax
je 0x45d9f9
movzx esi, word [ecx + edi]
test si, si
je 0x45d9f9
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x45d9e0
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.0045dc10
test eax, eax
js 0x45da51
mov ecx, dword [ebp - 0x820]
mov eax, ecx
shr eax, 0x10
cmp ax, 4
jne 0x45db56
push 0x40009
push 0x86
push ecx
push dword [ebp - 0x824]
call fcn.0045dcd0
add esp, 0x10
test eax, eax
jns 0x45db81
mov edi, dword [ebp - 0x814]
mov edx, 0x200
lea ecx, [ebp - 0x40c]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x45da80
movzx eax, word [ebx + ecx]
test ax, ax
je 0x45da80
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x45da62
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 0x45daa6
add eax, 2
sub ecx, 1
jne 0x45da98
mov ebx, 0x200
mov edx, ecx
mov eax, ebx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x45dafa
lea ecx, [ebp - 0x40c]
lea ecx, [ecx + edx*2]
sub ebx, edx
je 0x45daed
mov esi, str.d3d9.dll
mov eax, SysReAllocString
sub esi, ecx
test eax, eax
je 0x45daed
movzx edx, word [ecx + esi]
test dx, dx
je 0x45daed
mov word [ecx], dx
dec eax
add ecx, 2
sub ebx, 1
jne 0x45dad4
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.0045dc10
test eax, eax
js 0x45dbc2
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45db23
mov dword [eax], 9
test edi, edi
je 0x45db2d
mov dword [edi], 0
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45dbf7
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.005b0d47
mov esp, ebp
pop ebp
ret
cmp ax, 5
jne 0x45da51
push 0x50002
push 0xe5d0086
push ecx
push dword [ebp - 0x824]
call fcn.0045dcd0
add esp, 0x10
test eax, eax
js 0x45da51
mov eax, dword [ebp - 0x810]
test eax, eax
je 0x45db91
mov dword [eax], 8
mov edi, dword [ebp - 0x814]
test edi, edi
je 0x45dba1
mov dword [edi], 2
mov eax, dword [ebp - 0x818]
test eax, eax
je 0x45dbb3
mov ecx, 0x20
mov word [eax], cx
mov dword [ebp - 0x81c], 1
jmp 0x45da57
cmp dword [ebp - 0x81c], 0
jne 0x45dbf7
mov ebx, dword [ebp - 0x810]
mov ecx, 0x20
mov esi, dword [ebp - 0x818]
test ebx, ebx
je 0x45dbe6
mov dword [ebx], 0
test edi, edi
je 0x45dbf0
mov dword [edi], 0
test esi, esi
je 0x45dbf7
mov word [esi], cx
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005b0d47
mov esp, ebp
pop ebp
ret