Function at 0x4057c0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff8
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
mov esi, ecx
push ebx
push ecx
sub esp, 0x170
mov eax, dword [ecx]
mov edi, dword [ecx + 8]
mov ebx, dword [esi + 0x1c]
fld qword [esi + 0x20]
mov dword [ebp - 0x148], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x12c], edi
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x154], edi
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x158], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x118], edi
mov ebx, dword [esi + 0x30]
mov dword [ebp - 0x150], ecx
mov edi, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x130], ebx
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x140], ecx
fstp qword [ebp - 0x128]
mov ebx, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [ebp - 0x138], ebx
mov edx, dword [eax]
test ecx, ecx
je 0x4058b3
mov ebx, dword [ebp - 0x138]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [edx + 0x44]
sub esp, 8
mov ebx, eax
call fcn.004256b0
test ebx, ebx
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x14f
sete al
cmp ebx, 0x8878001e
sete dl
mov dword [esp + 8], ebx
or eax, edx
mov dword [esp + 4], str.IDirectSoundBuffer_SetFrequency___failed_to_set_frequency__08lx_n
movzx eax, al
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
jne 0x405d5c
mov eax, dword [ebp - 0x120]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 4], 0
lea edi, [ebp - 0xc4]
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x157
xor eax, eax
cmp ebx, 0x80070057
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42c7f0
call fcn.00404200
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov eax, dword [eax]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x15e
xor eax, eax
cmp ebx, 0x80070057
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42c7f0
call fcn.00404200
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0xc4], 0x14
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x163
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42c848
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
je 0x405d70
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x114], 0
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x14]
sub esp, 0x10
mov ebx, eax
call fcn.004256b0
test ebx, ebx
mov dword [eax], 0x42c5f1
sete dl
mov dword [eax + 4], 0x16c
mov eax, dword [ebp - 0x114]
mov dword [esp + 8], ebx
test eax, eax
mov dword [esp + 0xc], eax
setne al
mov dword [esp + 4], 0x42c8dc
movzx eax, al
and eax, edx
mov dword [esp], eax
call fcn.00404200
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov edx, dword [ebp - 0x114]
mov dword [eax + 4], 0x16f
cmp edx, 0x12
mov dword [esp + 8], edx
sete al
cmp edx, 0x28
mov dword [esp + 4], 0x42c934
sete dl
or eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.00404200
mov eax, dword [ebp - 0x114]
cmp eax, 0x12
je 0x405db8
cmp eax, 0x28
jne 0x405d5c
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x50]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x28
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x14]
mov ebx, eax
mov eax, dword [ebp - 0x50]
sub esp, 0x10
mov dword [ebp - 0xd6], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xd2], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xce], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xca], eax
movzx eax, word [ebp - 0x40]
mov word [ebp - 0xc6], ax
mov eax, dword [0x431a80]
cmp dword [ebp - 0x38], eax
je 0x406ca0
mov eax, 1
xor eax, 1
mov dword [ebp - 0x15c], eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x17e
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42c960
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
jne 0x405b55
cmp dword [0x428014], 1
jg 0x406c18
mov edi, dword [ebp - 0x120]
mov eax, dword [edi]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x189
xor eax, eax
cmp ebx, 0x80070057
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42c9cc
call fcn.00404200
mov eax, dword [edi]
lea ecx, [ebp - 0x10c]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov ecx, dword [ebp - 0x12c]
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x18e
mov eax, ecx
or eax, ebx
je 0x405c10
cmp ebx, 0x8878001e
jne 0x406d10
test ecx, ecx
je 0x406cd8
mov dword [esp + 8], 0x8878001e
mov dword [esp + 4], 0x42ca28
mov dword [esp], 1
call fcn.00404200
jmp 0x405c78
mov dword [esp + 8], 0
mov dword [esp + 4], 0x42ca28
mov dword [esp], 1
call fcn.00404200
mov ecx, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x138]
test ecx, ecx
je 0x406c08
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x193
mov eax, dword [ebp - 0x10c]
mov dword [esp + 0xc], ebx
cmp eax, ebx
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], 0x42ca5c
movzx eax, al
mov dword [esp], eax
call fcn.00404200
mov edi, dword [ebp - 0x120]
mov eax, dword [edi]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x199
xor eax, eax
cmp ebx, 0x80070057
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42caa8
call fcn.00404200
mov eax, dword [edi]
lea ecx, [ebp - 0x110]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x19d
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42cb04
call fcn.00404200
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x19e
mov eax, dword [ebp - 0x110]
mov dword [esp + 4], 0x42cb32
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00404200
mov edx, dword [ebp - 0x12c]
test edx, edx
jne 0x406d38
mov eax, dword [ebp - 0x14c]
test eax, eax
jne 0x405e00
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
cmp dword [0x428014], 1
jle 0x4059d3
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x165
mov eax, dword [ebp - 0xbc]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc0]
mov dword [esp], 0x42c8b8
mov dword [esp + 4], eax
call fcn.00404130
jmp 0x4059d3
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0xd6]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x12
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x14]
sub esp, 0x10
mov ebx, eax
xor eax, eax
cmp word [ebp - 0xd6], 3
sete al
mov dword [ebp - 0x15c], eax
jmp 0x405b17
mov edi, dword [0x4b0354]
mov dword [ebp - 0x108], 0
test edi, edi
je 0x405f07
mov eax, dword [ebp - 0x140]
test eax, eax
je 0x4073d8
call fcn.004256b0
mov ebx, dword [ebp - 0x138]
xor edx, edx
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1ed
imul eax, ebx, 0x1b8
mov ecx, dword [ebp - 0xd2]
mov dword [esp + 0x18], ebx
div ecx
mov dword [esp + 0x1c], eax
movzx eax, word [ebp - 0xd4]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0xc8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
fld qword [ebp - 0x128]
mov dword [esp], str.____Playing__g_second_440Hz_tone_at__ldx_dx_d_with_a_frequency_of__ld___ldHz__n
fstp qword [esp + 4]
call fcn.00404130
mov eax, dword [sym.imp.user32.dll_GetForegroundWindow]
mov ecx, dword [ebp - 0x12c]
mov dword [ebp - 0x160], eax
test ecx, ecx
je 0x405f07
mov eax, dword [ebp - 0x148]
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebp - 0x160]
call eax
test eax, eax
je 0x40763f
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x148]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1fc
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.IDirectSound_SetCooperativeLevel_DSSCL_WRITEPRIMARY__failed:__08lx_n
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
jne 0x405d5c
mov eax, dword [ebp - 0x120]
mov ebx, dword [ebp - 0x118]
mov eax, dword [eax]
mov edx, dword [eax]
test ebx, ebx
je 0x4061d9
lea ecx, [ebp - 0x108]
mov dword [esp + 4], 0x42bd60
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x206
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42ce68
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
jne 0x405d5c
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x90]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x42bda0
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x20d
xor eax, eax
test edi, edi
jne 0x405fbb
mov edx, dword [ebp - 0x90]
xor eax, eax
test edx, edx
setne al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x42ce68
call fcn.00404200
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x20f
mov eax, dword [ebp - 0x120]
mov edx, dword [eax]
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], 0x42ce9c
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.00404200
mov eax, dword [ebp - 0x90]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x212
xor eax, eax
cmp edi, 1
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x42cebc
call fcn.00404200
mov eax, dword [ebp - 0x120]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x216
xor eax, eax
test edi, edi
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x42cefc
call fcn.00404200
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x120]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x42bda0
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x21c
test edi, edi
je 0x4075a0
mov dword [esp + 8], edi
mov dword [esp], ebx
mov dword [esp + 4], 0x42cf3c
call fcn.00404200
mov eax, dword [ebp - 0x108]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x221
xor eax, eax
cmp ebx, 0x80070057
sete al
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x50]
mov dword [esp], eax
mov edi, ebx
mov dword [esp + 4], 0x42cf74
call fcn.00404200
xor eax, eax
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x108]
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x228
xor eax, eax
cmp edi, 0x80070057
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x42cf74
call fcn.00404200
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x50], 0x40
mov edx, dword [eax]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x22d
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42cf74
call fcn.00404200
mov eax, dword [ebp - 0x120]
mov eax, dword [eax]
mov ebx, dword [ebp - 0x154]
test ebx, ebx
je 0x406285
mov edx, dword [eax]
mov edx, dword [edx + 0x18]
test byte [ebp - 0xc0], 0x80
je 0x4074e0
lea ecx, [ebp - 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
call edx
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x233
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42cfac
call fcn.00404200
mov edi, dword [ebp - 0x120]
mov ecx, dword [esi + 0x10]
mov eax, dword [edi]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x3c]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x236
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42cfdc
call fcn.00404200
mov eax, dword [edi]
mov ecx, dword [ebp - 0x158]
test ecx, ecx
je 0x406331
mov edx, dword [eax]
mov ecx, dword [edx + 0x1c]
test byte [ebp - 0xc0], 0x40
je 0x407550
lea edx, [ebp - 0x90]
mov dword [esp], eax
mov dword [esp + 4], edx
call ecx
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x243
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42d068
call fcn.00404200
mov edi, dword [ebp - 0x120]
mov ecx, dword [esi + 0x18]
mov eax, dword [edi]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x40]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x246
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42d094
call fcn.00404200
mov eax, dword [edi]
lea ecx, [ebp - 0x100]
lea ebx, [ebp - 0x104]
mov edx, dword [eax]
mov dword [esp + 0x1c], 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov esi, dword [ebp - 0xbc]
mov dword [esp], eax
mov dword [esp + 4], esi
call dword [edx + 0x2c]
sub esp, 0x20
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x253
xor eax, eax
cmp edi, 0x80070057
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x42d118
call fcn.00404200
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x100]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov esi, dword [ebp - 0xbc]
mov dword [esp + 4], 0
lea ecx, [esi + 1]
mov dword [esp], eax
mov dword [esp + 8], ecx
call dword [edx + 0x2c]
sub esp, 0x20
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x25a
xor eax, eax
cmp ebx, 0x80070057
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42d118
call fcn.00404200
mov eax, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x140]
mov dword [esp + 0x10], eax
test edx, edx
lea eax, [ebp - 0xac]
mov dword [esp + 0xc], eax
je 0x407398
mov eax, dword [ebp - 0xd2]
xor edx, edx
lea ebx, [ebp - 0xd6]
mov dword [ebp - 0x134], 0
fild qword [ebp - 0x138]
mov dword [ebp - 0x134], edx
fmul qword [ebp - 0x128]
mov dword [ebp - 0x138], eax
fild qword [ebp - 0x138]
mov dword [esp], ebx
fdivp st(1)
fstp qword [esp + 4]
call fcn.004048f0
mov esi, dword [ebp - 0x120]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0x94], 0
mov eax, dword [esi]
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
call fcn.00404690
mov eax, dword [esi]
mov edx, dword [eax]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x30]
sub esp, 0x10
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x269
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42d16c
call fcn.00404200
mov eax, dword [esi]
lea esi, [ebp - 0x110]
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x26c
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42cb04
call fcn.00404200
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x26d
mov eax, dword [ebp - 0x110]
mov dword [esp + 4], 0x42d195
cmp eax, 5
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00404200
mov esi, dword [ebp - 0x150]
test esi, esi
je 0x406679
lea edx, [ebp - 0x8c]
xor eax, eax
mov ecx, 0xf
mov edi, edx
lea ebx, [ebp - 0x90]
rep stosd dword es:[edi], eax
mov eax, dword [esi]
mov dword [ebp - 0x90], 0x40
mov dword [esp], esi
mov dword [esp + 4], ebx
call dword [eax + 0xc]
sub esp, 8
mov esi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x275
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], 0x42d1b4
call fcn.00404200
mov eax, dword [ebp - 0x130]
test eax, eax
jne 0x4074c0
mov esi, dword [ebp - 0x150]
mov eax, dword [esi]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], esi
call dword [eax + 0x28]
sub esp, 0xc
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x27e
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42d1f0
mov dword [esp], eax
call fcn.00404200
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x4066e7
mov eax, dword [ebp - 0x144]
test eax, eax
jne 0x407530
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x1c], 0x41200000
lea ecx, [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [edx + 0x30]
sub esp, 0xc
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x288
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42d224
mov dword [esp], eax
call fcn.00404200
mov eax, dword [sym.imp.kernel32.dll_GetTickCount]
lea esi, [ebp - 0xfc]
mov dword [ebp - 0x120], eax
call eax
mov ebx, dword [ebp - 0x150]
mov dword [ebp - 0x138], eax
lea esi, [esi]
lea esi, [esi]
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 0xc
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x100
xor eax, eax
test edi, edi
sete al
mov dword [esp + 8], edi
mov dword [esp + 4], 0x42d280
mov dword [esp], eax
call fcn.00404200
test edi, edi
jne 0x407180
mov ecx, dword [ebp - 0x98]
mov edi, dword [ebp - 0xa0]
xor edx, edx
mov eax, ecx
div edi
mov eax, dword [ebp - 0xfc]
cmp eax, edx
jae 0x407308
add edi, ecx
lea ecx, [edi + eax]
sub ecx, edx
mov eax, dword [0x428014]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x98], ecx
cmp eax, 1
jle 0x4067fc
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x10d
mov eax, dword [ebp - 0xac]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x98]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x140]
mov dword [esp + 8], edx
mov eax, dword [ebp - 0xa0]
mov dword [esp], 0x42d2b8
mov dword [esp + 4], eax
call fcn.00404130
mov ecx, dword [ebp - 0x98]
mov eax, dword [0x428014]
cmp dword [ebp - 0xac], ecx
jb 0x407318
mov edx, dword [ebp - 0x94]
mov edi, dword [ebp - 0xfc]
cmp edi, edx
jae 0x40681e
add edi, dword [ebp - 0xa0]
sub edi, edx
cmp eax, 1
jle 0x406865
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x11e
mov eax, dword [ebp - 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x94]
mov dword [esp], 0x42d2f8
mov dword [esp + 4], eax
call fcn.00404130
test edi, edi
je 0x406a42
mov eax, dword [ebp - 0xac]
cmp dword [ebp - 0x9c], eax
jb 0x407360
cmp dword [0x428014], 1
jle 0x4068aa
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x131
mov dword [esp + 4], edi
mov dword [esp], 0x42d337
call fcn.00404130
mov eax, dword [ebp - 0xa8]
lea ecx, [ebp - 0xec]
mov edx, dword [eax]
mov dword [esp + 0x18], ecx
lea ecx, [ebp - 0xf4]
mov dword [esp + 0x14], ecx
lea ecx, [ebp - 0xf0]
mov dword [esp + 0x10], ecx
lea ecx, [ebp - 0xf8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x94]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0x2c]
sub esp, 0x20
mov dword [ebp - 0x140], eax
call fcn.004256b0
mov edx, dword [ebp - 0x140]
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0xe9
xor eax, eax
test edx, edx
sete al
mov dword [esp + 8], edx
mov dword [esp + 4], 0x42c614
mov dword [esp], eax
call fcn.00404200
mov edx, dword [ebp - 0x140]
test edx, edx
jne 0x407180
mov eax, dword [ebp - 0xa4]
xor edx, edx
cmp word [eax + 0xe], 8
mov eax, dword [ebp - 0xf0]
sete dl
shl edx, 7
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x140], edx
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_memset]
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x4069a3
mov eax, dword [ebp - 0xec]
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x140]
mov dword [esp], ecx
mov dword [esp + 4], edx
call dword [sym.imp.msvcrt.dll_memset]
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x94]
xor edx, edx
add eax, edi
div dword [ebp - 0xa0]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x94], edx
mov edx, dword [eax]
mov eax, dword [ebp - 0xec]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ebp - 0xf0]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0xf8]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call dword [edx + 0x4c]
sub esp, 0x14
mov dword [ebp - 0x140], eax
call fcn.004256b0
mov edx, dword [ebp - 0x140]
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0xf4
xor eax, eax
test edx, edx
sete al
mov dword [esp + 8], edx
mov dword [esp + 4], 0x42c680
mov dword [esp], eax
call fcn.00404200
mov edx, dword [ebp - 0x140]
test edx, edx
jne 0x407180
cmp edi, 0xffffffff
je 0x407180
mov dword [esp + 4], 0x1f
mov dword [esp], 0xffffffff
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x120]
sub esp, 8
call eax
mov edi, eax
test ebx, ebx
je 0x406b35
mov ecx, dword [ebp - 0x130]
test ecx, ecx
je 0x406b35
mov ecx, dword [ebp - 0x138]
mov eax, edi
mov dword [ebp - 0x13c], 0
sub eax, ecx
cmp dword [0x428014], 2
mov dword [ebp - 0x140], eax
fild qword [ebp - 0x140]
fmul dword [0x42e190]
fdiv dword [0x42e160]
fdiv qword [ebp - 0x128]
fsub dword [0x42e19c]
fstp dword [ebp - 0x140]
fld dword [ebp - 0x140]
fst dword [ebp - 0x8c]
jg 0x407328
mov eax, dword [ebx]
mov dword [esp + 0x10], 0
fld dword [ebp - 0x84]
fstp dword [esp + 0xc]
fld dword [ebp - 0x88]
mov dword [esp], ebx
fstp dword [esp + 8]
fstp dword [esp + 4]
call dword [eax + 0x38]
sub esp, 0x14
mov dword [ebp - 0x140], eax
call fcn.004256b0
mov edx, dword [ebp - 0x140]
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x296
xor eax, eax
test edx, edx
sete al
mov dword [esp + 8], edx
mov dword [esp + 4], 0x42d1f0
mov dword [esp], eax
call fcn.00404200
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x406710
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x406710
mov dword [ebp - 0x13c], 0
mov eax, dword [ebp - 0x138]
sub edi, eax
cmp dword [0x428014], 2
mov dword [ebp - 0x140], edi
fild qword [ebp - 0x140]
fmul dword [0x42e1a0]
fdiv dword [0x42e160]
fdiv qword [ebp - 0x128]
fsubr dword [0x42e194]
fstp dword [ebp - 0x140]
fld dword [ebp - 0x140]
fst dword [ebp - 0x4c]
jg 0x407490
mov eax, dword [ebp - 0x108]
mov edx, dword [eax]
mov dword [esp + 0x10], 0
fld dword [ebp - 0x44]
fstp dword [esp + 0xc]
fld dword [ebp - 0x48]
mov dword [esp], eax
fstp dword [esp + 8]
fstp dword [esp + 4]
call dword [edx + 0x4c]
sub esp, 0x14
mov edi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x29f
xor eax, eax
test edi, edi
sete al
mov dword [esp + 8], edi
mov dword [esp + 4], 0x42d224
mov dword [esp], eax
call fcn.00404200
jmp 0x406710
mov ebx, dword [ebp - 0xd2]
jmp 0x405c40
call fcn.004256b0
mov edi, dword [ebp - 0x12c]
mov dword [eax], 0x42c5f1
movzx ebx, word [ebp - 0xd4]
mov dword [eax + 4], 0x181
movzx eax, word [ebp - 0xca]
test edi, edi
mov edi, 0x42c7e3
movzx ecx, word [ebp - 0xc8]
movzx edx, word [ebp - 0xd6]
mov dword [ebp - 0x160], eax
mov eax, 0x42c7db
cmove eax, edi
mov edi, dword [ebp - 0x160]
mov dword [esp + 0x1c], edi
mov edi, dword [ebp - 0xce]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0xd2]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x42c990
call fcn.00404130
jmp 0x405b55
mov eax, dword [0x431a84]
cmp dword [ebp - 0x34], eax
jne 0x405b09
mov eax, dword [0x431a88]
cmp dword [ebp - 0x30], eax
jne 0x405b09
mov eax, dword [0x431a8c]
cmp dword [ebp - 0x2c], eax
jne 0x405b09
xor eax, eax
jmp 0x405b0e
cmp ebx, 0x8878001e
jne 0x406d10
test byte [ebp - 0xc0], 0x20
je 0x405bee
mov dword [esp + 8], 0x8878001e
mov dword [esp + 4], 0x42ca28
mov dword [esp], 0
call fcn.00404200
jmp 0x405c78
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42ca28
mov dword [esp], 0
call fcn.00404200
test ebx, ebx
je 0x405c2c
jmp 0x405c78
mov eax, dword [ebp - 0x148]
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
mov eax, dword [sym.imp.user32.dll_GetForegroundWindow]
mov dword [ebp - 0x160], eax
call eax
test eax, eax
je 0x407629
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x148]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1a5
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.IDirectSound_SetCooperativeLevel_DSSCL_PRIORITY__failed:__08lx_n
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
jne 0x405d5c
mov edi, dword [ebp - 0x120]
mov eax, dword [edi]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1ab
xor eax, eax
cmp ebx, 0x80070057
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42cb90
call fcn.00404200
xor eax, eax
mov dword [ebp - 0x120], edi
mov word [ebp - 0xd8], ax
mov eax, dword [edi]
lea edi, [ebp - 0xe8]
mov dword [ebp - 0xe8], 0x20001
mov dword [ebp - 0xe4], 0x2b11
mov dword [ebp - 0xdc], 0x100004
mov dword [ebp - 0xe0], 0xac44
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1b0
mov dword [esp], edi
call fcn.00403410
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 4], 0x42cbec
mov dword [esp], eax
call fcn.00404200
mov edi, dword [ebp - 0x120]
lea ecx, [ebp - 0xd6]
mov eax, dword [edi]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x12
mov dword [esp], eax
call dword [edx + 0x14]
sub esp, 0x10
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1b8
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42c960
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
jne 0x406fec
movzx eax, word [ebp - 0xe8]
cmp word [ebp - 0xd6], ax
jne 0x406f30
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0xd2], eax
jne 0x406f30
movzx eax, word [ebp - 0xda]
cmp word [ebp - 0xc8], ax
jne 0x406f30
movzx eax, word [ebp - 0xe6]
cmp word [ebp - 0xd4], ax
je 0x406fec
lea esi, [esi]
lea esi, [esi]
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1be
movzx eax, word [ebp - 0xdc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xe0]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0xe6]
mov dword [esp + 0x10], eax
movzx eax, word [ebp - 0xda]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xe4]
mov dword [esp + 8], eax
movzx eax, word [ebp - 0xe8]
mov dword [esp], 0x42cc1c
mov dword [esp + 4], eax
call fcn.00404130
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1c1
movzx eax, word [ebp - 0xca]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0xce]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0xd4]
mov dword [esp + 0x10], eax
movzx eax, word [ebp - 0xc8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xd2]
mov dword [esp + 8], eax
movzx eax, word [ebp - 0xd6]
mov dword [esp], 0x42cc58
mov dword [esp + 4], eax
call fcn.00404130
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x4c], 0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x48], 0
mov eax, dword [eax]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x50], 0x14
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1c9
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42c848
mov dword [esp], eax
call fcn.00404200
test ebx, ebx
jne 0x407069
cmp dword [0x428014], 1
jg 0x4075ed
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1d0
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], 0x42ccb0
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00404200
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xbc], eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1d7
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0x4c]
mov dword [esp + 4], 0x42cd08
mov dword [esp + 8], eax
cmp edx, eax
mov dword [esp + 0xc], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00404200
mov eax, dword [ebp - 0x148]
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebp - 0x160]
call eax
test eax, eax
je 0x407634
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x148]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1df
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.IDirectSound_SetCooperativeLevel_DSSCL_NORMAL__failed:__08lx_n
call fcn.00404200
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x405d5c
mov dword [ebp - 0x108], 0
mov eax, dword [0x4b0354]
test eax, eax
jne 0x405e18
jmp 0x405e9b
mov ebx, dword [ebp - 0x138]
mov eax, dword [0x428014]
cmp eax, 1
jle 0x4071ae
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x139
mov dword [esp], 0x42d355
call fcn.00404130
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x48]
sub esp, 4
mov esi, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x13b
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], 0x42d368
call fcn.00404200
mov eax, dword [ebp - 0x120]
call eax
mov esi, eax
call fcn.004256b0
fld qword [ebp - 0x128]
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x2a4
mov eax, esi
fld st(0)
fmul dword [0x42e160]
sub eax, ebx
mov dword [esp + 4], 0x42d394
mov dword [esp + 8], eax
xor eax, eax
fst qword [esp + 0xc]
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], 0
fild qword [ebp - 0x120]
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x11c], 0
fsubp st(1)
fild qword [ebp - 0x120]
faddp st(1)
fabs
fxch st(1)
fmul dword [0x42e194]
fcompi st(1)
fstp st(0)
setae al
mov dword [esp], eax
call fcn.00404200
mov edx, dword [ebp - 0xb0]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp - 0x12c]
sub esp, 0xc
test edx, edx
jne 0x407428
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x405d5c
mov eax, dword [ebp - 0x108]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x2b2
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x42d3c4
mov dword [esp], eax
call fcn.00404200
jmp 0x405d5c
add ecx, eax
sub ecx, edx
jmp 0x40678b
mov ebx, dword [ebp - 0x138]
jmp 0x40718b
fstp st(0)
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x292
fld dword [ebp - 0x8c]
mov dword [esp], 0x42d256
fstp qword [esp + 4]
call fcn.00404130
fld dword [ebp - 0x8c]
jmp 0x406ad1
mov edx, edi
lea eax, [ebp - 0xb0]
call fcn.00404690
cmp eax, 0xffffffff
je 0x407180
sub edi, eax
mov eax, dword [ebp - 0xac]
cmp dword [ebp - 0x9c], eax
je 0x4073b8
test edi, edi
je 0x406a42
jmp 0x40687f
fld qword [ebp - 0x128]
lea ebx, [ebp - 0xd6]
mov dword [esp], ebx
fstp qword [esp + 4]
call fcn.004048f0
jmp 0x406494
cmp dword [0x428014], 1
jg 0x4075b8
test edi, edi
je 0x406a42
jmp 0x4068aa
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1f2
movzx eax, word [ebp - 0xd4]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0xc8]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xd2]
mov dword [esp + 0xc], eax
fld qword [ebp - 0x128]
mov dword [esp], 0x42cdf4
fstp qword [esp + 4]
call fcn.00404130
jmp 0x405e86
mov eax, dword [ebp - 0x148]
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
call dword [sym.imp.user32.dll_GetForegroundWindow]
test eax, eax
je 0x40761e
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x148]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x2ad
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.IDirectSound_SetCooperativeLevel_DSSCL_NORMAL__failed:__08lx_n
mov dword [esp], eax
call fcn.00404200
jmp 0x4072af
fstp st(0)
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x29b
fld dword [ebp - 0x4c]
mov dword [esp], 0x42d26c
fstp qword [esp + 4]
call fcn.00404130
fld dword [ebp - 0x4c]
jmp 0x406ba3
mov dword [ebp - 0x8c], 0xc0a00000
fld qword [ebp - 0x128]
fdivr dword [0x42e190]
fstp dword [ebp - 0x80]
jmp 0x40662d
lea ecx, [esi + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call edx
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x23a
xor eax, eax
cmp ebx, 0x8878001e
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42d00c
call fcn.00404200
mov eax, dword [ebp - 0x120]
mov eax, dword [eax]
jmp 0x406285
fld qword [ebp - 0x128]
fdivr dword [0x42e198]
mov dword [ebp - 0x4c], 0x42c80000
fstp dword [ebp - 0x40]
jmp 0x406691
lea edx, [esi + 0x18]
mov dword [esp], eax
mov dword [esp + 4], edx
call ecx
sub esp, 8
mov ebx, eax
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x24a
xor eax, eax
cmp ebx, 0x8878001e
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0x42d0c0
call fcn.00404200
mov eax, dword [ebp - 0x120]
mov eax, dword [eax]
jmp 0x406331
mov ecx, dword [ebp - 0x120]
xor ebx, ebx
mov eax, dword [ecx]
test eax, eax
setne bl
jmp 0x4060d0
call fcn.004256b0
xor edx, edx
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x12a
mov eax, dword [ebp - 0x9c]
div dword [ebp - 0xa0]
mov dword [esp], 0x42d31f
mov dword [esp + 4], edx
call fcn.00404130
jmp 0x407386
call fcn.004256b0
mov dword [eax], 0x42c5f1
mov dword [eax + 4], 0x1cb
mov eax, dword [ebp - 0x48]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp], 0x42cc88
mov dword [esp + 4], eax
call fcn.00404130
jmp 0x407069
call dword [sym.imp.user32.dll_GetDesktopWindow]
jmp 0x407441
call dword [sym.imp.user32.dll_GetDesktopWindow]
jmp 0x406d58
call dword [sym.imp.user32.dll_GetDesktopWindow]
jmp 0x407103
call dword [sym.imp.user32.dll_GetDesktopWindow]
jmp 0x405eb6