Function at 0x434a10
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x47591b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x27c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x298]
push edi
mov edi, ecx
mov eax, dword [esi]
lea ecx, [esp + 0x68]
push 4
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x6c]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x64]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
lea ebp, [edi + 0xa4]
push 4
push ebp
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
lea eax, [edi + 0xa8]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
lea eax, [edi + 0xac]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov eax, dword [esi]
lea ebx, [edi + 0x94]
push 4
push ebx
mov ecx, esi
mov dword [esp + 0x1c], ebx
call dword [eax + 0x34]
mov edx, dword [esi]
lea eax, [edi + 0x98]
push 4
push eax
mov ecx, esi
mov dword [esp + 0x2c], eax
call dword [edx + 0x34]
mov edx, dword [esi]
lea eax, [edi + 0x9c]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov eax, dword [esi]
lea ecx, [esp + 0x60]
push 4
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov edx, dword [esi]
lea eax, [edi + 0xdc]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
lea eax, [edi + 0xe0]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov ecx, edi
call fcn.00435e50
push str.Narration.wav
lea ecx, [esp + 0x2c]
mov dword [edi + 0xa0], eax
call fcn.004654a8
push str.Background.wav
lea ecx, [esp + 0x34]
mov dword [esp + 0x298], 0
call fcn.004654a8
push 0x48f490
lea ecx, [esp + 0x38]
mov byte [esp + 0x298], 1
call fcn.004654a8
mov eax, dword [esp + 0x68]
mov byte [esp + 0x294], 2
test eax, eax
je 0x434b93
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x434b93
mov eax, dword [esp + 0x64]
test eax, eax
je 0x434b69
push str._DistSound.wav
jmp 0x434b6e
push str._DistNarration.wav
lea ecx, [esp + 0x2c]
call fcn.004655c3
push str._DistBackground.wav
lea ecx, [esp + 0x34]
call fcn.004655c3
push str._Dist
lea ecx, [esp + 0x38]
call fcn.004655c3
cmp dword [ebp], 0
je 0x4351fa
mov eax, dword [esp + 0x60]
test eax, eax
je 0x434d91
lea eax, [esp + 0x84]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x14]
call fcn.004654a8
mov eax, dword [esi]
lea edx, [esp + 0x28]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push ecx
mov ecx, esi
mov byte [esp + 0x2a0], 3
call dword [eax + 0x10]
lea edx, [esp + 0x1c]
push edx
call fcn.00437d00
add esp, 8
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x2a0], 4
call fcn.00465669
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x298], 5
call fcn.004657de
lea ecx, [esp + 0x2c]
mov byte [esp + 0x294], 4
call fcn.0046543a
lea ecx, [esp + 0x14]
mov byte [esp + 0x294], 3
call fcn.0046543a
lea ecx, [esp + 0x10]
push ecx
lea ecx, [edi + 0xc8]
call fcn.00465573
lea ecx, [esp + 0x44]
call fcn.00402680
lea edx, [esp + 0x10]
mov byte [esp + 0x294], 6
push edx
call fcn.00438f40
add esp, 4
test eax, eax
jne 0x434cfd
push eax
mov eax, dword [esp + 0x14]
push 0x1002
push eax
lea ecx, [esp + 0x50]
call fcn.00466330
test eax, eax
je 0x434cb5
lea ecx, [esp + 0x44]
push esi
push ecx
mov ecx, edi
call fcn.00436470
lea ecx, [edi + 0x54]
mov dword [edi + 0x90], 1
lea edx, [esp + 0x10]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00460ed7
jmp 0x434d07
push 0
push 0
push 0x14a
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
lea ecx, [esp + 0x44]
mov dword [ebp], 0
mov dword [ebx], 0
mov byte [esp + 0x294], 3
call fcn.004026c0
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x10]
jmp 0x435e03
push esi
push 0
mov ecx, edi
call fcn.00436470
mov eax, dword [edi + 0x3c]
test eax, eax
jne 0x434d1b
mov ecx, edi
call fcn.00435e50
mov dword [edi + 0xa0], eax
mov eax, dword [edi + 0xa0]
test eax, eax
je 0x434d6f
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x3c]
push eax
push 0
call fcn.00439be0
test eax, eax
jne 0x434d58
push eax
push eax
push 0x17d
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov dword [ebp], 0
jmp 0x434d5f
mov dword [ebp], 1
mov ecx, dword [edi + 0x3c]
push 0
call fcn.00439ae0
mov dword [edi + 0xd4], eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x294], 3
call fcn.004026c0
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x10]
jmp 0x4351f5
cmp dword [ebx], 0
je 0x43511c
lea ecx, [esp + 0x84]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edx, [esp + 0x84]
lea ecx, [esp + 0x10]
push edx
call fcn.004654a8
mov edx, dword [esi]
lea eax, [esp + 0x28]
push eax
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
mov byte [esp + 0x2a0], 7
call dword [edx + 0x10]
lea ecx, [esp + 0x40]
push ecx
call fcn.00437d00
add esp, 8
lea edx, [esp + 0x30]
push eax
push edx
mov byte [esp + 0x2a0], 8
call fcn.00465669
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x298], 9
call fcn.004657de
lea ecx, [esp + 0x2c]
mov byte [esp + 0x294], 8
call fcn.0046543a
lea ecx, [esp + 0x38]
mov byte [esp + 0x294], 7
call fcn.0046543a
lea eax, [esp + 0x10]
lea ecx, [edi + 0xc8]
push eax
call fcn.00465573
lea ecx, [esp + 0x44]
call fcn.00402680
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 0xa
push ecx
call fcn.00438f40
add esp, 4
test eax, eax
jne 0x435047
mov edx, dword [esp + 0x10]
push eax
push 0x1002
push edx
lea ecx, [esp + 0x50]
call fcn.00466330
test eax, eax
je 0x434fc2
mov eax, dword [esi]
lea ecx, [esp + 0x20]
push 4
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x38]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov ecx, dword [esp + 0x38]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [esp + 0x38]
mov ecx, esi
push eax
push ebx
call dword [edx + 0x34]
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00450390
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push ecx
push ebx
push edx
push eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], ecx
call fcn.0043df20
add esp, 0x14
test eax, eax
je 0x434f72
push 0x10
push 0x489150
push 0x149
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x44]
mov dword [ebp], 0
mov byte [esp + 0x294], 7
mov dword [eax], 0
call fcn.004026c0
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 2
call fcn.0046543a
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
xor eax, eax
jmp 0x435cad
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
push ecx
push ebx
lea ecx, [esp + 0x4c]
call fcn.004026d0
lea ecx, [esp + 0x44]
call fcn.0046654b
push ebx
call fcn.004502a7
lea ecx, [edi + 0x54]
add esp, 4
mov dword [edi + 0x90], 1
lea edx, [esp + 0x10]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00460ed7
mov ebx, dword [esp + 0x14]
jmp 0x43508c
push 0
push 0
push 0x14a
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
lea ecx, [esp + 0x44]
mov dword [ebp], 0
mov dword [ebx], 0
mov byte [esp + 0x294], 7
call fcn.004026c0
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 2
call fcn.0046543a
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
xor eax, eax
jmp 0x435cad
mov eax, dword [esi]
lea ecx, [esp + 0x1c]
push 4
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x14]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov ecx, dword [esp + 0x14]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esi]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x20], eax
call dword [edx + 0x34]
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [edi + 0x3c]
test eax, eax
jne 0x4350a0
mov ecx, edi
call fcn.00435e50
mov dword [edi + 0xa0], eax
mov eax, dword [edi + 0xa0]
test eax, eax
je 0x4350fa
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x3c]
push eax
push 0
call fcn.00439be0
test eax, eax
jne 0x4350e3
push eax
push eax
push 0x17d
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov dword [ebp], 0
mov dword [ebx], 0
jmp 0x4350ea
mov dword [ebp], 1
mov ecx, dword [edi + 0x3c]
push 0
call fcn.00439ae0
mov dword [edi + 0xd4], eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x294], 7
call fcn.004026c0
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x10]
jmp 0x4351f5
mov edx, dword [esi]
lea ecx, [esp + 0x28]
push ecx
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
call dword [edx + 0x18]
lea ecx, [esp + 0x20]
push ecx
call fcn.00437d00
add esp, 8
lea edx, [esp + 0x24]
push eax
push edx
mov byte [esp + 0x2a0], 0xb
call fcn.00465669
lea ecx, [esp + 0x18]
mov byte [esp + 0x294], 0xd
call fcn.0046543a
lea eax, [esp + 0x20]
lea ecx, [edi + 0xc8]
push eax
call fcn.00465573
mov eax, dword [edi + 0x3c]
test eax, eax
jne 0x435185
mov ecx, edi
call fcn.00435e50
mov dword [edi + 0xa0], eax
mov eax, dword [edi + 0xa0]
test eax, eax
je 0x4351e9
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [edi + 0x3c]
push 0
call fcn.00439be0
test eax, eax
jne 0x4351c8
push eax
push eax
push 0x17d
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov dword [ebp], 0
mov dword [ebx], 0
jmp 0x4351e9
mov ecx, dword [edi + 0x3c]
push 0
mov dword [ebp], 1
mov dword [edi + 0x90], 1
call fcn.00439ae0
mov dword [edi + 0xd4], eax
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x20]
call fcn.0046543a
mov eax, dword [edi + 0xa8]
lea ebp, [edi + 0xa8]
test eax, eax
mov dword [esp + 0x38], ebp
je 0x435878
mov eax, dword [esp + 0x60]
test eax, eax
je 0x43543c
lea edx, [esp + 0x84]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x84]
lea ecx, [esp + 0x10]
push eax
call fcn.004654a8
mov edx, dword [esi]
lea ecx, [esp + 0x30]
push ecx
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
mov byte [esp + 0x2a0], 0xe
call dword [edx + 0x10]
lea ecx, [esp + 0x34]
push ecx
call fcn.00437d00
add esp, 8
lea edx, [esp + 0x1c]
mov bl, 0xf
push eax
push edx
mov byte [esp + 0x2a0], bl
call fcn.00465669
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x298], 0x10
call fcn.004657de
lea ecx, [esp + 0x18]
mov byte [esp + 0x294], bl
call fcn.0046543a
lea ecx, [esp + 0x2c]
mov byte [esp + 0x294], 0xe
call fcn.0046543a
lea eax, [esp + 0x10]
lea ecx, [edi + 0xcc]
push eax
call fcn.00465573
lea ecx, [esp + 0x44]
call fcn.00402680
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 0x11
push ecx
call fcn.00438f40
add esp, 4
test eax, eax
jne 0x4353b6
mov edx, dword [esp + 0x10]
push eax
push 0x1002
push edx
lea ecx, [esp + 0x50]
call fcn.00466330
test eax, eax
je 0x43532d
lea eax, [esp + 0x44]
push esi
push eax
mov ecx, edi
call fcn.00436470
lea ecx, [edi + 0x54]
mov dword [edi + 0x8c], 1
lea edx, [esp + 0x10]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00460ed7
jmp 0x4353c0
push 0
push 0
push 0x17f
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x44]
mov dword [ebp], 0
mov byte [esp + 0x294], 0xe
mov dword [eax], 0
call fcn.004026c0
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 2
call fcn.0046543a
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
xor eax, eax
jmp 0x435cad
push esi
push 0
mov ecx, edi
call fcn.00436470
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x4353e1
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.004651af
mov ecx, edi
call fcn.00436210
jmp 0x43541a
mov ecx, edi
call fcn.00435e50
test eax, eax
je 0x435410
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov dword [edi + 0xa0], 1
call fcn.004651af
mov ecx, edi
call fcn.00436210
jmp 0x43541a
mov dword [edi + 0xa0], 0
lea ecx, [esp + 0x44]
mov byte [esp + 0x294], 0xe
call fcn.004026c0
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x10]
jmp 0x435873
mov ecx, dword [esp + 0x24]
cmp dword [ecx], 0
je 0x4357ae
lea edx, [esp + 0x84]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x84]
lea ecx, [esp + 0x10]
push eax
call fcn.004654a8
mov edx, dword [esi]
lea ecx, [esp + 0x30]
push ecx
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
mov byte [esp + 0x2a0], 0x12
call dword [edx + 0x10]
lea ecx, [esp + 0x34]
push ecx
call fcn.00437d00
add esp, 8
lea edx, [esp + 0x1c]
mov bl, 0x13
push eax
push edx
mov byte [esp + 0x2a0], bl
call fcn.00465669
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x298], 0x14
call fcn.004657de
lea ecx, [esp + 0x18]
mov byte [esp + 0x294], bl
call fcn.0046543a
lea ecx, [esp + 0x2c]
mov byte [esp + 0x294], 0x12
call fcn.0046543a
lea eax, [esp + 0x10]
lea ecx, [edi + 0xcc]
push eax
call fcn.00465573
lea ecx, [esp + 0x44]
call fcn.00402680
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 0x15
push ecx
call fcn.00438f40
add esp, 4
test eax, eax
jne 0x4356f3
mov edx, dword [esp + 0x10]
push eax
push 0x1002
push edx
lea ecx, [esp + 0x50]
call fcn.00466330
test eax, eax
je 0x43566a
mov eax, dword [esi]
lea ecx, [esp + 0x20]
push 4
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x14]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov ecx, dword [esp + 0x14]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, dword [esi]
mov ebp, eax
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
push ebp
call dword [edx + 0x34]
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00450390
mov ebx, eax
mov eax, dword [esp + 0x24]
push eax
lea edx, [esp + 0x20]
push ebp
push edx
push ebx
mov dword [esp + 0x2c], eax
call fcn.0043df20
add esp, 0x14
test eax, eax
je 0x435622
push 0x10
push 0x489150
push 0x149
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov byte [esp + 0x294], 0x12
mov dword [ecx], 0
lea ecx, [esp + 0x44]
mov dword [eax], 0
call fcn.004026c0
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 2
call fcn.0046543a
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
xor eax, eax
jmp 0x435cad
push ebp
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x44]
push edx
push ebx
call fcn.004026d0
lea ecx, [esp + 0x44]
call fcn.0046654b
push ebx
call fcn.004502a7
lea ecx, [edi + 0x54]
add esp, 4
mov dword [edi + 0x8c], 1
lea edx, [esp + 0x10]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00460ed7
jmp 0x435732
push 0
push 0
push 0x17f
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x44]
mov dword [ebp], 0
mov byte [esp + 0x294], 0x12
mov dword [eax], 0
call fcn.004026c0
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 2
call fcn.0046543a
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
xor eax, eax
jmp 0x435cad
mov edx, dword [esi]
lea eax, [esp + 0x1c]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x14]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov ecx, dword [esp + 0x14]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, dword [esi]
mov ebp, eax
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
push ebp
call dword [edx + 0x34]
push ebp
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x435753
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.004651af
mov ecx, edi
call fcn.00436210
jmp 0x43578c
mov ecx, edi
call fcn.00435e50
test eax, eax
je 0x435782
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov dword [edi + 0xa0], 1
call fcn.004651af
mov ecx, edi
call fcn.00436210
jmp 0x43578c
mov dword [edi + 0xa0], 0
lea ecx, [esp + 0x44]
mov byte [esp + 0x294], 0x12
call fcn.004026c0
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x10]
jmp 0x435873
mov edx, dword [esi]
lea ecx, [esp + 0x30]
push ecx
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
call dword [edx + 0x18]
lea ecx, [esp + 0x20]
push ecx
call fcn.00437d00
add esp, 8
lea edx, [esp + 0x28]
push eax
push edx
mov byte [esp + 0x2a0], 0x16
call fcn.00465669
lea ecx, [esp + 0x18]
mov byte [esp + 0x294], 0x18
call fcn.0046543a
lea eax, [esp + 0x24]
lea ecx, [edi + 0xcc]
push eax
call fcn.00465573
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x435824
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.004651af
mov ecx, edi
call fcn.00436210
jmp 0x43585d
mov ecx, edi
call fcn.00435e50
test eax, eax
je 0x435853
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov dword [edi + 0xa0], 1
call fcn.004651af
mov ecx, edi
call fcn.00436210
jmp 0x43585d
mov dword [edi + 0xa0], 0
mov dword [edi + 0x8c], 1
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x24]
call fcn.0046543a
mov eax, dword [edi + 0xac]
test eax, eax
je 0x435c5d
mov eax, dword [edi + 0x3c]
test eax, eax
jne 0x4358a0
mov ecx, edi
call fcn.00435e50
neg eax
sbb eax, eax
neg eax
mov dword [edi + 0xa0], eax
mov eax, dword [0x48b464]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov edx, dword [esi]
lea eax, [esp + 0x58]
push 4
push eax
mov ecx, esi
mov byte [esp + 0x29c], 0x1b
call dword [edx + 0x34]
mov eax, dword [edi + 0x9c]
test eax, eax
jne 0x4359df
mov eax, dword [esp + 0x58]
xor ebp, ebp
test eax, eax
jle 0x4359d0
mov bl, 0x1d
mov edx, dword [esi]
lea eax, [esp + 0x18]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4359b3
push ebp
lea ecx, [esp + 0x44]
push str.Effect_d.wav
push ecx
call fcn.0045fd47
add esp, 0xc
lea edx, [esp + 0x40]
lea eax, [esp + 0x34]
push edx
mov edx, dword [esi]
push eax
push ecx
mov eax, esp
mov dword [esp + 0x28], esp
push eax
mov ecx, esi
call dword [edx + 0x18]
lea ecx, [esp + 0x44]
push ecx
call fcn.00437d00
add esp, 8
lea edx, [esp + 0x1c]
push eax
push edx
mov byte [esp + 0x2a4], 0x1c
call fcn.00465669
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x2a0], bl
call fcn.00465669
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x298], 0x1e
call fcn.00465573
lea ecx, [esp + 0x2c]
mov byte [esp + 0x294], bl
call fcn.0046543a
lea ecx, [esp + 0x14]
mov byte [esp + 0x294], 0x1c
call fcn.0046543a
lea ecx, [esp + 0x38]
mov byte [esp + 0x294], 0x1b
call fcn.0046543a
mov edx, dword [edi + 0x44]
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [edx + ebp*4]
call fcn.00465573
jmp 0x4359c3
mov eax, dword [edi + 0x44]
push 0x48f490
lea ecx, [eax + ebp*4]
call fcn.004655c3
mov eax, dword [esp + 0x58]
inc ebp
cmp ebp, eax
jl 0x4358e5
mov dword [edi + 0x88], 1
jmp 0x435c2a
lea ecx, [esp + 0x70]
call fcn.00402680
lea ecx, [esp + 0x188]
mov byte [esp + 0x294], 0x1f
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edx, [esp + 0x188]
lea ecx, [esp + 0x54]
push edx
call fcn.004654a8
mov eax, dword [esp + 0x58]
xor ebx, ebx
test eax, eax
mov byte [esp + 0x294], 0x20
mov dword [esp + 0x20], ebx
jle 0x435c08
mov eax, dword [esi]
lea ecx, [esp + 0x1c]
push 4
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x435bf7
push ebx
lea edx, [esp + 0x44]
push str.Effect_d.wav
push edx
call fcn.0045fd47
add esp, 0xc
lea eax, [esp + 0x34]
lea ecx, [esp + 0x54]
lea edx, [esp + 0x10]
push eax
push ecx
push edx
call fcn.00465669
lea ecx, [esp + 0x40]
lea edx, [esp + 0x18]
push ecx
push eax
push edx
mov byte [esp + 0x2a0], 0x21
call fcn.00465669
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x298], 0x22
call fcn.00465573
lea ecx, [esp + 0x18]
mov byte [esp + 0x294], 0x21
call fcn.0046543a
lea ecx, [esp + 0x10]
mov byte [esp + 0x294], 0x20
call fcn.0046543a
mov ecx, dword [edi + 0x44]
lea eax, [esp + 0x3c]
push eax
lea ecx, [ecx + ebx*4]
call fcn.00465573
lea edx, [esp + 0x3c]
push edx
call fcn.00438f40
add esp, 4
test eax, eax
jne 0x435bb5
push eax
mov eax, dword [esp + 0x40]
push 0x1002
push eax
lea ecx, [esp + 0x7c]
call fcn.00466330
test eax, eax
je 0x435d8a
mov edx, dword [esi]
lea eax, [esp + 0x24]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x14]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
ja 0x435b28
mov dword [esp + 0x24], eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, dword [esi]
mov ebp, eax
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
push ebp
call dword [edx + 0x34]
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00450390
mov ebx, eax
mov eax, dword [esp + 0x28]
push eax
lea edx, [esp + 0x40]
push ebp
push edx
push ebx
mov dword [esp + 0x4c], eax
call fcn.0043df20
add esp, 0x14
test eax, eax
jne 0x435cc8
push ebp
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x70]
push eax
push ebx
call fcn.004026d0
lea ecx, [esp + 0x70]
call fcn.0046654b
push ebx
call fcn.004502a7
lea ecx, [edi + 0x54]
add esp, 4
mov dword [edi + 0x88], 1
lea edx, [esp + 0x3c]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00460ed7
mov ebx, dword [esp + 0x20]
jmp 0x435bf7
mov eax, dword [esi]
lea ecx, [esp + 0x80]
push 4
push ecx
mov ecx, esi
call dword [eax + 0x34]
mov edx, dword [esi]
lea eax, [esp + 0x2c]
push 4
push eax
mov ecx, esi
call dword [edx + 0x34]
mov ecx, dword [esp + 0x2c]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edx, dword [esi]
mov ebp, eax
mov eax, dword [esp + 0x2c]
mov ecx, esi
push eax
push ebp
call dword [edx + 0x34]
push ebp
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x58]
inc ebx
cmp ebx, eax
mov dword [esp + 0x20], ebx
jl 0x435a2e
lea ecx, [esp + 0x54]
mov byte [esp + 0x294], 0x1f
call fcn.0046543a
lea ecx, [esp + 0x70]
mov byte [esp + 0x294], 0x1b
call fcn.004026c0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x294], 0x1a
call fcn.0046543a
lea ecx, [esp + 0x40]
mov byte [esp + 0x294], 0x19
call fcn.0046543a
lea ecx, [esp + 0x5c]
mov byte [esp + 0x294], 2
call fcn.0046543a
mov ecx, dword [edi + 0xe0]
mov edx, dword [edi + 0xdc]
push ecx
push edx
mov ecx, edi
call fcn.00436140
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
mov eax, 1
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x288
ret 4
push 0x10
push 0x489150
push 0x149
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov ecx, dword [edi + 0x44]
mov edx, dword [esp + 0x20]
push 0x48f490
lea ecx, [ecx + edx*4]
call fcn.004655c3
lea ecx, [esp + 0x54]
mov byte [esp + 0x294], 0x1f
call fcn.0046543a
lea ecx, [esp + 0x70]
mov byte [esp + 0x294], 0x1b
call fcn.004026c0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x294], 0x1a
call fcn.0046543a
lea ecx, [esp + 0x40]
mov byte [esp + 0x294], 0x19
call fcn.0046543a
lea ecx, [esp + 0x5c]
mov byte [esp + 0x294], 2
call fcn.0046543a
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
xor eax, eax
jmp 0x435cad
push 0
push 0
push 0x180
call fcn.00438120
add esp, 4
mov ecx, edi
push eax
call fcn.00463559
mov eax, dword [edi + 0x44]
push 0x48f490
lea ecx, [eax + ebx*4]
call fcn.004655c3
lea ecx, [esp + 0x54]
mov byte [esp + 0x294], 0x1f
call fcn.0046543a
lea ecx, [esp + 0x70]
mov byte [esp + 0x294], 0x1b
call fcn.004026c0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x294], 0x1a
call fcn.0046543a
lea ecx, [esp + 0x40]
mov byte [esp + 0x294], 0x19
call fcn.0046543a
mov byte [esp + 0x294], 2
lea ecx, [esp + 0x5c]
call fcn.0046543a
lea ecx, [esp + 0x34]
mov byte [esp + 0x294], 1
call fcn.0046543a
lea ecx, [esp + 0x30]
mov byte [esp + 0x294], 0
call fcn.0046543a
lea ecx, [esp + 0x28]
mov dword [esp + 0x294], 0xffffffff
call fcn.0046543a
xor eax, eax
jmp 0x435cad