Function at 0x407290
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x6c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov byte [esi + 0x10ac], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x10b4], eax
mov eax, dword [esi + 0xfc0]
xor ebx, ebx
cmp eax, 9
mov byte [esi + 0x10ab], bl
mov byte [esi + 0x10aa], bl
mov byte [esi + 0x10a9], bl
mov byte [esi + 0x10a8], bl
mov byte [esi + 0x10a7], bl
jne 0x4072f4
mov al, byte [esi + 0x10a5]
mov byte [esi + 0x10b2], bl
cmp al, bl
mov byte [esi + 0x10af], bl
sete al
mov byte [esi + 0x10a5], al
mov al, byte [esi + 0x10a5]
mov dword [esi + 0xfc0], ebx
cmp al, bl
je 0x408482
cmp byte [esi + 0x10a4], bl
je 0x407359
cmp byte [esi + 0xcdc], bl
jne 0x407349
push 0x64
push str.bwav_mj1.wav
push ebx
push 3
call fcn.0040f8d0
add esp, 0x10
mov byte [esi + 0xcdc], 1
lea edi, [esi + 0x558]
mov ebp, 5
mov ecx, edi
call fcn.00412950
add edi, 0x34
dec ebp
jne 0x40733c
mov byte [esi + 0x10a4], bl
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
mov edx, dword [esi + 0xefc]
lea ecx, [esi + 0xda8]
dec edx
push edx
call fcn.00402300
mov ebp, eax
mov al, byte [esi + 0x10a0]
cmp al, bl
mov dword [esi + 0xd90], ebx
je 0x407384
mov dword [esi + 0xd90], ebp
lea edi, [esi + 0xb84]
push 0xd
mov ecx, edi
call fcn.004022f0
test eax, eax
jne 0x407a1a
cmp byte [esi + 0x10a6], bl
jne 0x407440
push ebp
mov ecx, edi
mov byte [esi + 0x10a6], 1
mov byte [esi + 0x10a0], bl
call fcn.00401210
push ebp
mov ecx, edi
mov byte [esi + 0x10a7], al
call fcn.00401150
push ebp
mov ecx, edi
mov byte [esi + 0x10a8], al
call fcn.004011b0
push ebp
mov ecx, edi
mov byte [esi + 0x10a9], al
call fcn.00401390
mov cl, byte [esi + 0x10a7]
mov byte [esi + 0x10ab], al
cmp cl, bl
jne 0x407412
cmp byte [esi + 0x10a8], bl
jne 0x407412
cmp byte [esi + 0x10a9], bl
jne 0x407412
cmp byte [esi + 0x10aa], bl
jne 0x407412
cmp al, bl
je 0x407440
mov byte [esi + 0x10b3], bl
lea edi, [esi + 0x558]
mov al, byte [esi + ebx + 0x10a7]
mov ecx, edi
push eax
call fcn.00412930
inc ebx
add edi, 0x34
cmp ebx, 5
jl 0x40741e
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
mov ecx, edi
call fcn.004021c0
test al, al
je 0x407567
push ebp
mov ecx, edi
call fcn.00401390
test al, al
je 0x4079e0
cmp dword [0x431308], 3
jne 0x408aec
lea ecx, [esi + 0x558]
mov dword [esp + 0x10], 0xffffffff
xor ebp, ebp
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
call fcn.00412970
test al, al
je 0x407491
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x14]
call fcn.00412950
mov ecx, dword [esp + 0x14]
inc ebp
add ecx, 0x34
cmp ebp, 5
mov dword [esp + 0x14], ecx
jl 0x407480
mov ecx, dword [esp + 0x10]
mov eax, 4
cmp ecx, eax
jne 0x4079e0
mov dword [esi + 0xfc0], eax
mov eax, dword [0x42f524]
mov edx, dword [str.0123456789abcdefg]
mov ecx, dword [0x42f528]
mov dword [esp + 0x34], eax
mov ax, word [0x42f530]
mov dword [esp + 0x30], edx
mov edx, dword [0x42f52c]
mov dword [esp + 0x38], ecx
mov ecx, dword [str.pwavx_hux.wav]
mov word [esp + 0x40], ax
mov eax, dword [0x42f5dc]
mov dword [esp + 0x3c], edx
mov edx, dword [0x42f5d8]
mov dword [esp + 0x1c], ecx
mov cx, word [0x42f5e0]
mov dword [esp + 0x24], eax
mov eax, dword [0x4312f4]
mov dword [esp + 0x20], edx
xor edx, edx
mov word [esp + 0x42], bx
mov word [esp + 0x28], cx
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x2a], edx
mov word [esp + 0x2e], dx
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
lea eax, [esp + 0x20]
push eax
push ebx
push 1
mov byte [esp + 0x34], dl
call fcn.0040f8d0
add esp, 0x10
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp dword [0x431308], 3
jne 0x4079ce
cmp byte [esi + 0x10a0], bl
je 0x407661
push ebp
mov ecx, edi
call fcn.00414210
push eax
mov ecx, edi
call fcn.00401e10
test al, al
je 0x40815f
lea ecx, [esi + 0xda8]
mov byte [esi + 0x10a0], bl
call fcn.00402370
mov dword [esi + 0xfc0], 1
mov ecx, dword [str.0123456789abcdefg]
mov eax, dword [0x42f528]
mov edx, dword [0x42f524]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_chix.wav]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f5c8]
mov dword [esp + 0x1c], eax
mov ax, word [0x42f5d0]
mov word [esp + 0x40], dx
mov edx, dword [0x42f5cc]
mov dword [esp + 0x20], ecx
mov cl, byte [0x42f5d2]
mov word [esp + 0x28], ax
mov eax, dword [0x4312f4]
mov dword [esp + 0x24], edx
xor edx, edx
mov word [esp + 0x42], bx
mov byte [esp + 0x2a], cl
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x2b], edx
mov byte [esp + 0x2f], dl
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
lea eax, [esp + 0x20]
push eax
push ebx
push 1
mov byte [esp + 0x35], dl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
lea ecx, [esi + 0x558]
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
call fcn.00412970
test al, al
je 0x40768c
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x18]
call fcn.00412950
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
inc eax
add edx, 0x34
cmp eax, 5
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jl 0x407677
mov eax, dword [esp + 0x10]
cmp eax, ebx
jne 0x40779e
push ebp
mov ecx, edi
call fcn.00401ff0
test al, al
je 0x40778d
lea ecx, [esi + 0xda8]
call fcn.00402370
mov dword [esi + 0xfc0], 1
mov eax, dword [str.0123456789abcdefg]
mov edx, dword [0x42f528]
mov ecx, dword [0x42f524]
mov dword [esp + 0x30], eax
mov eax, dword [0x42f52c]
mov dword [esp + 0x38], edx
mov edx, dword [str.pwavx_chix.wav]
mov dword [esp + 0x34], ecx
mov cx, word [0x42f530]
mov dword [esp + 0x3c], eax
mov eax, dword [0x42f5c8]
mov dword [esp + 0x1c], edx
mov dx, word [0x42f5d0]
mov word [esp + 0x40], cx
mov ecx, dword [0x42f5cc]
mov dword [esp + 0x20], eax
mov al, byte [0x42f5d2]
mov word [esp + 0x28], dx
mov edx, dword [0x4312f4]
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov word [esp + 0x42], bx
mov byte [esp + 0x2a], al
mov al, byte [esp + edx + 0x30]
mov dword [esp + 0x2b], ecx
mov byte [esp + 0x2f], cl
mov byte [esp + 0x20], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea edx, [esp + 0x1c]
push 0x64
push edx
mov cl, byte [esp + eax + 0x38]
push ebx
push 1
mov byte [esp + 0x35], cl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10a0], 1
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
cmp eax, 1
jne 0x407860
push ebp
mov ecx, edi
call fcn.004019c0
lea ecx, [esi + 0xda8]
call fcn.00402370
mov dword [esi + 0xfc0], 2
mov eax, dword [str.0123456789abcdefg]
mov ecx, dword [0x42f524]
mov edx, dword [0x42f528]
mov dword [esp + 0x30], eax
mov eax, dword [0x42f52c]
mov dword [esp + 0x34], ecx
mov cx, word [0x42f530]
mov dword [esp + 0x3c], eax
mov eax, dword [0x42f5b8]
mov dword [esp + 0x38], edx
mov edx, dword [str.pwavx_pengx.wav]
mov word [esp + 0x40], cx
mov ecx, dword [0x42f5bc]
mov dword [esp + 0x20], eax
mov eax, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], edx
mov edx, dword [0x42f5c0]
mov dword [esp + 0x24], ecx
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
lea eax, [esp + 0x20]
push eax
push ebx
push 1
mov byte [esp + 0x36], dl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp eax, 2
jne 0x40792a
push ebp
mov ecx, edi
call fcn.00401a80
lea ecx, [esi + 0xda8]
mov byte [esi + 0x10af], 1
call fcn.00402370
mov dword [esi + 0xfc0], 3
mov ecx, dword [str.0123456789abcdefg]
mov edx, dword [0x42f524]
mov eax, dword [0x42f528]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f5a8]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], dx
mov edx, dword [0x42f5ac]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42f5b0]
mov dword [esp + 0x24], edx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea ecx, [esp + 0x1c]
push 0x64
push ecx
mov al, byte [esp + eax + 0x38]
push ebx
push 1
mov byte [esp + 0x36], al
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp eax, 4
jne 0x4079e0
mov dword [esi + 0xfc0], eax
mov eax, dword [0x42f524]
mov edx, dword [str.0123456789abcdefg]
mov ecx, dword [0x42f528]
mov dword [esp + 0x34], eax
mov ax, word [0x42f530]
mov dword [esp + 0x30], edx
mov edx, dword [0x42f52c]
mov dword [esp + 0x38], ecx
mov ecx, dword [str.pwavx_hux.wav]
mov word [esp + 0x40], ax
mov eax, dword [0x42f5dc]
mov dword [esp + 0x3c], edx
mov edx, dword [0x42f5d8]
mov dword [esp + 0x1c], ecx
mov cx, word [0x42f5e0]
mov dword [esp + 0x24], eax
mov eax, dword [0x4312f4]
mov dword [esp + 0x20], edx
xor edx, edx
mov word [esp + 0x42], bx
mov word [esp + 0x28], cx
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x2a], edx
mov word [esp + 0x2e], dx
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
lea eax, [esp + 0x20]
mov byte [esp + 0x28], dl
push eax
jmp 0x40840d
cmp byte [esi + 0x10b3], bl
je 0x408aec
mov byte [esi + 0x10b3], bl
mov ecx, edi
call fcn.004023c0
cmp eax, 0x14
jl 0x407a00
mov dword [esi + 0xfc0], 0xb
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10a6], bl
mov dword [esi + 0xfc0], 0xa
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
mov ecx, edi
call fcn.004021c0
test al, al
jne 0x407a37
mov ecx, edi
call fcn.00401870
test al, al
je 0x407a37
mov byte [esi + 0x10aa], 1
cmp byte [esi + 0x10a6], bl
jne 0x407b41
mov ecx, edi
mov byte [esi + 0x10a6], 1
mov byte [esi + 0x10b2], 1
mov byte [esi + 0x10a4], bl
mov byte [esi + 0x10a3], bl
mov byte [esi + 0x10a2], bl
mov byte [esi + 0x10a1], bl
call fcn.00401330
mov ecx, edi
mov byte [esi + 0x10a9], al
call fcn.004012c0
mov cl, byte [esi + 0x10a9]
push 0xd
or cl, al
mov byte [esi + 0x10a9], cl
mov ecx, edi
call fcn.004022f0
push eax
mov ecx, edi
call fcn.00401390
mov ecx, dword [esi + 0xfd0]
mov byte [esi + 0x10ab], al
cmp ecx, ebx
je 0x407adc
cmp al, bl
mov byte [esi + 0x10aa], bl
mov byte [esi + 0x10a9], bl
mov byte [esi + 0x10a8], bl
mov byte [esi + 0x10a7], bl
jne 0x407adc
mov dword [esi + 0xfc0], 0xb
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x6c
ret
mov ecx, edi
call fcn.004021c0
test al, al
je 0x407aed
mov byte [esi + 0x10a9], bl
cmp byte [esi + 0x10a7], bl
jne 0x407b19
cmp byte [esi + 0x10a8], bl
jne 0x407b19
cmp byte [esi + 0x10a9], bl
jne 0x407b19
cmp byte [esi + 0x10aa], bl
jne 0x407b19
cmp byte [esi + 0x10ab], bl
je 0x408aec
lea edi, [esi + 0x558]
mov cl, byte [esi + ebx + 0x10a7]
push ecx
mov ecx, edi
call fcn.00412930
inc ebx
add edi, 0x34
cmp ebx, 5
jl 0x407b1f
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
cmp byte [esi + 0x10b2], bl
jne 0x407b80
cmp byte [esi + 0x10aa], bl
je 0x407b80
mov byte [esi + 0x10b2], 1
lea edi, [esi + 0x558]
mov dl, byte [esi + ebx + 0x10a7]
mov ecx, edi
push edx
call fcn.00412930
inc ebx
add edi, 0x34
cmp ebx, 5
jl 0x407b5e
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
cmp byte [esi + 0x10a3], bl
je 0x407dbb
cmp dword [0x431308], 3
jne 0x407c92
mov ebp, dword [esi + 0xcd4]
mov byte [esi + 0x10a3], bl
cmp ebp, 0xe
mov byte [esi + 0x10c4], bl
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
jge 0x407c0b
lea eax, [esp + ebp*4 + 0x44]
mov dword [esp + 0x18], eax
push ebp
mov ecx, edi
call fcn.004022f0
mov ecx, dword [esp + 0x18]
inc ebp
mov dword [ecx], eax
add ecx, 4
cmp ebp, 0xe
mov dword [esp + 0x18], ecx
jl 0x407bf0
mov ecx, edi
call fcn.00414210
push ebx
push eax
mov ecx, edi
call fcn.00402390
push ebx
mov ecx, edi
call fcn.004010c0
mov ecx, edi
call fcn.00401820
test al, al
je 0x407c4d
mov ecx, edi
call fcn.004021d0
lea ecx, [esi + 0x4e8]
mov byte [esi + 0xcdc], bl
call fcn.00412dd0
mov byte [esi + 0x10a4], 1
mov ebp, dword [esi + 0xcd4]
cmp ebp, 0xe
jge 0x408adc
lea ecx, [esp + ebp*4 + 0x44]
mov dword [esp + 0x18], ecx
push ebx
push ebp
mov ecx, edi
call fcn.004023b0
mov edx, dword [esp + 0x18]
mov ecx, edi
mov eax, dword [edx]
push eax
push ebp
call fcn.00402390
mov ecx, dword [esp + 0x18]
inc ebp
add ecx, 4
cmp ebp, 0xe
mov dword [esp + 0x18], ecx
jl 0x407c64
jmp 0x408adc
mov ebp, dword [esi + 0xcd4]
mov dword [esp + 0x44], ebx
cmp ebp, 0xe
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
jge 0x407cf8
lea ecx, [esp + ebp*4 + 0x44]
mov dword [esp + 0x18], ecx
push ebp
mov ecx, edi
call fcn.004022f0
mov ecx, dword [esp + 0x18]
inc ebp
mov dword [ecx], eax
add ecx, 4
cmp ebp, 0xe
mov dword [esp + 0x18], ecx
jl 0x407cdd
mov edx, dword [0x431300]
mov eax, dword [0x431304]
mov ecx, edi
mov dword [0x4312f8], edx
mov dword [0x4312fc], eax
call fcn.00414210
push ebx
push eax
mov ecx, edi
call fcn.00402390
push ebx
mov ecx, edi
call fcn.004010c0
mov ecx, edi
call fcn.00401820
test al, al
je 0x407d84
mov byte [esi + 0x10c4], 1
mov dword [esi + 0x1160], ebx
mov dword [esp + 0x14], ebx
lea ebp, [esi + 0x10c8]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, edi
call fcn.00401390
test al, al
je 0x407d6e
mov dword [ebp], 1
mov eax, dword [esi + 0x1160]
inc eax
mov dword [esi + 0x1160], eax
jmp 0x407d71
mov dword [ebp], ebx
mov eax, dword [esp + 0x14]
add ebp, 4
inc eax
cmp eax, 0x26
mov dword [esp + 0x14], eax
jl 0x407d48
jmp 0x407d8a
mov byte [esi + 0x10c4], bl
mov esi, dword [esi + 0xcd4]
cmp esi, 0xe
jge 0x408aec
lea ebx, [esp + esi*4 + 0x44]
mov edx, dword [ebx]
mov ecx, edi
push edx
push esi
call fcn.00402390
inc esi
add ebx, 4
cmp esi, 0xe
jl 0x407d9d
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
mov ecx, edi
call fcn.004021c0
test al, al
je 0x407fa5
push 0xd
mov ecx, edi
call fcn.004022f0
push eax
mov ecx, edi
call fcn.00401390
test al, al
je 0x407ee1
cmp dword [0x431308], 3
jne 0x408aec
lea eax, [esi + 0x558]
mov dword [esp + 0x10], 0xffffffff
xor ebp, ebp
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
call fcn.00412970
test al, al
je 0x407e15
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x18]
call fcn.00412950
mov ecx, dword [esp + 0x18]
inc ebp
add ecx, 0x34
cmp ebp, 5
mov dword [esp + 0x18], ecx
jl 0x407e04
cmp dword [esp + 0x10], 4
jne 0x40845e
mov dword [esi + 0xfc0], 6
mov ecx, dword [str.0123456789abcdefg]
mov edx, dword [0x42f524]
mov eax, dword [0x42f528]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f598]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_zimox.wav]
mov word [esp + 0x40], dx
mov edx, dword [0x42f59c]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42f5a0]
mov dword [esp + 0x24], edx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea ecx, [esp + 0x1c]
push 0x64
push ecx
mov al, byte [esp + eax + 0x38]
push ebx
push 1
mov byte [esp + 0x36], al
call fcn.0040f8d0
add esp, 0x10
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov ecx, edi
call fcn.004012c0
test al, al
mov ecx, edi
je 0x408460
call fcn.00401bc0
mov byte [esi + 0x10af], 1
mov edx, dword [str.0123456789abcdefg]
mov eax, dword [0x42f524]
mov ecx, dword [0x42f528]
mov dword [esp + 0x30], edx
mov edx, dword [0x42f52c]
mov dword [esp + 0x34], eax
mov ax, word [0x42f530]
mov dword [esp + 0x3c], edx
mov edx, dword [0x42f5a8]
mov dword [esp + 0x38], ecx
mov ecx, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], ax
mov eax, dword [0x42f5ac]
mov dword [esp + 0x20], edx
mov edx, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x42f5b0]
mov dword [esp + 0x24], eax
mov al, byte [esp + edx + 0x30]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea edx, [esp + 0x1c]
push 0x64
push edx
mov cl, byte [esp + eax + 0x38]
push ebx
push 1
mov byte [esp + 0x36], cl
call fcn.0040f8d0
add esp, 0x10
mov dword [esi + 0xfc0], 8
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp dword [0x431308], 3
jne 0x408aec
cmp byte [esi + 0x10a1], bl
je 0x408088
mov ecx, edi
call fcn.00414210
push eax
mov ecx, edi
call fcn.00401ca0
test al, al
je 0x40815f
mov byte [esi + 0x10a1], bl
mov byte [esi + 0x10af], 1
mov dword [esi + 0xfc0], 7
mov eax, dword [str.0123456789abcdefg]
mov ecx, dword [0x42f524]
mov edx, dword [0x42f528]
mov dword [esp + 0x30], eax
mov eax, dword [0x42f52c]
mov dword [esp + 0x34], ecx
mov cx, word [0x42f530]
mov dword [esp + 0x3c], eax
mov eax, dword [0x42f5a8]
mov dword [esp + 0x38], edx
mov edx, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], cx
mov ecx, dword [0x42f5ac]
mov dword [esp + 0x20], eax
mov eax, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], edx
mov edx, dword [0x42f5b0]
mov dword [esp + 0x24], ecx
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
lea eax, [esp + 0x20]
push eax
push ebx
push 1
mov byte [esp + 0x36], dl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp byte [esi + 0x10a2], bl
je 0x40816f
mov ecx, edi
call fcn.00414210
push eax
mov ecx, edi
call fcn.00401b40
test al, al
je 0x40815f
mov byte [esi + 0x10af], 1
mov byte [esi + 0x10a2], bl
mov dword [esi + 0xfc0], 8
mov ecx, dword [str.0123456789abcdefg]
mov edx, dword [0x42f524]
mov eax, dword [0x42f528]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f5a8]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], dx
mov edx, dword [0x42f5ac]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42f5b0]
mov dword [esp + 0x24], edx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea ecx, [esp + 0x1c]
push 0x64
push ecx
mov al, byte [esp + eax + 0x38]
push ebx
push 1
mov byte [esp + 0x36], al
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10a6], bl
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
lea edx, [esi + 0x558]
mov dword [esp + 0x10], 0xffffffff
xor ebp, ebp
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
call fcn.00412970
test al, al
je 0x408194
mov dword [esp + 0x10], ebp
mov ecx, dword [esp + 0x18]
call fcn.00412950
mov ecx, dword [esp + 0x18]
inc ebp
add ecx, 0x34
cmp ebp, 5
mov dword [esp + 0x18], ecx
jl 0x408183
mov eax, dword [esp + 0x10]
cmp eax, 2
jne 0x408372
mov ecx, edi
call fcn.00401330
test al, al
mov ecx, edi
je 0x408297
call fcn.00401d90
test al, al
je 0x408286
mov byte [esi + 0x10af], 1
mov dword [esi + 0xfc0], 7
mov eax, dword [str.0123456789abcdefg]
mov ecx, dword [0x42f524]
mov edx, dword [0x42f528]
mov dword [esp + 0x30], eax
mov eax, dword [0x42f52c]
mov dword [esp + 0x34], ecx
mov cx, word [0x42f530]
mov dword [esp + 0x3c], eax
mov eax, dword [0x42f5a8]
mov dword [esp + 0x38], edx
mov edx, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], cx
mov ecx, dword [0x42f5ac]
mov dword [esp + 0x20], eax
mov eax, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], edx
mov edx, dword [0x42f5b0]
mov dword [esp + 0x24], ecx
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
lea eax, [esp + 0x20]
push eax
push ebx
push 1
mov byte [esp + 0x36], dl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10a1], 1
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
call fcn.004012c0
test al, al
je 0x408aec
mov ecx, edi
call fcn.00401bc0
test al, al
je 0x408361
mov byte [esi + 0x10af], 1
mov dword [esi + 0xfc0], 8
mov ecx, dword [str.0123456789abcdefg]
mov edx, dword [0x42f524]
mov eax, dword [0x42f528]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f5a8]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], dx
mov edx, dword [0x42f5ac]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42f5b0]
mov dword [esp + 0x24], edx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea ecx, [esp + 0x1c]
push 0x64
push ecx
mov al, byte [esp + eax + 0x38]
push ebx
push 1
mov byte [esp + 0x36], al
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10a2], 1
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
cmp eax, 4
jne 0x408431
mov dword [esi + 0xfc0], 6
mov edx, dword [str.0123456789abcdefg]
mov eax, dword [0x42f524]
mov ecx, dword [0x42f528]
mov dword [esp + 0x30], edx
mov edx, dword [0x42f52c]
mov dword [esp + 0x34], eax
mov ax, word [0x42f530]
mov dword [esp + 0x3c], edx
mov edx, dword [0x42f598]
mov dword [esp + 0x38], ecx
mov ecx, dword [str.pwavx_zimox.wav]
mov word [esp + 0x40], ax
mov eax, dword [0x42f59c]
mov dword [esp + 0x20], edx
mov edx, dword [0x4312f4]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x42f5a0]
mov dword [esp + 0x24], eax
mov al, byte [esp + edx + 0x30]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea edx, [esp + 0x1c]
push 0x64
push edx
mov cl, byte [esp + eax + 0x38]
mov byte [esp + 0x2e], cl
push ebx
push 1
call fcn.0040f8d0
push 0x64
push str.bwav_mj1.wav
push ebx
push 3
call fcn.0040f8d0
add esp, 0x20
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp eax, 3
jne 0x408458
mov ecx, edi
call fcn.00402200
mov dword [esi + 0xfc0], 5
mov byte [esi + 0x10a3], 1
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10af], bl
mov ecx, edi
call fcn.004023c0
cmp eax, 0x14
jl 0x408adc
mov dword [esi + 0xfc0], 0xb
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x6c
ret
lea ecx, [esi + 0xb84]
call fcn.004022d0
lea edi, [esi + 0xda8]
push 0xd
mov ecx, edi
mov ebp, eax
call fcn.004022f0
test eax, eax
mov al, byte [esi + 0x10a6]
jne 0x4087ff
cmp al, bl
jne 0x4079e0
push ebp
mov ecx, edi
mov byte [esi + 0x10a6], 1
call fcn.00403b40
cmp eax, 1
jne 0x408583
mov dword [esi + 0xfc0], 4
mov ecx, dword [0x42f524]
mov eax, dword [str.0123456789abcdefg]
mov edx, dword [0x42f528]
mov dword [esp + 0x34], ecx
mov cx, word [0x42f530]
mov dword [esp + 0x30], eax
mov eax, dword [0x42f52c]
mov dword [esp + 0x38], edx
mov edx, dword [str.pwavx_hux.wav]
mov word [esp + 0x40], cx
mov ecx, dword [0x42f5dc]
mov dword [esp + 0x3c], eax
mov eax, dword [0x42f5d8]
mov dword [esp + 0x1c], edx
mov dx, word [0x42f5e0]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x42fa1c]
mov dword [esp + 0x20], eax
xor eax, eax
mov word [esp + 0x42], bx
mov word [esp + 0x28], dx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x2a], eax
mov word [esp + 0x2e], ax
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea edx, [esp + 0x1c]
push 0x64
push edx
mov cl, byte [esp + eax + 0x38]
add eax, 0x10
push ebx
push ebx
mov byte [esp + 0x34], cl
mov dword [0x42fa18], eax
call fcn.0040f8d0
add esp, 0x10
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp eax, 2
jne 0x408653
push ebp
mov ecx, edi
mov byte [esi + 0x10af], 1
call fcn.00401a80
lea ecx, [esi + 0xb84]
call fcn.00402370
mov dword [esi + 0xfc0], 3
mov eax, dword [str.0123456789abcdefg]
mov ecx, dword [0x42f524]
mov edx, dword [0x42f528]
mov dword [esp + 0x30], eax
mov eax, dword [0x42f52c]
mov dword [esp + 0x34], ecx
mov cx, word [0x42f530]
mov dword [esp + 0x3c], eax
mov eax, dword [0x42f5a8]
mov dword [esp + 0x38], edx
mov edx, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], cx
mov ecx, dword [0x42f5ac]
mov dword [esp + 0x20], eax
mov eax, dword [0x42fa1c]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], edx
mov edx, dword [0x42f5b0]
mov dword [esp + 0x24], ecx
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
add eax, 0x14
mov dword [0x42fa18], eax
lea eax, [esp + 0x20]
push eax
push ebx
push ebx
mov byte [esp + 0x36], dl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp eax, 3
jne 0x40871d
push ebp
mov ecx, edi
call fcn.004019c0
lea ecx, [esi + 0xb84]
call fcn.00402370
mov dword [esi + 0xfc0], 2
mov ecx, dword [str.0123456789abcdefg]
mov edx, dword [0x42f524]
mov eax, dword [0x42f528]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f5b8]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_pengx.wav]
mov word [esp + 0x40], dx
mov edx, dword [0x42f5bc]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x42fa1c]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42f5c0]
mov dword [esp + 0x24], edx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea edx, [esp + 0x1c]
push 0x64
push edx
mov cl, byte [esp + eax + 0x38]
add eax, 0x18
push ebx
push ebx
mov byte [esp + 0x36], cl
mov dword [0x42fa18], eax
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp eax, 4
jne 0x408aec
mov eax, dword [esi + 0xfb4]
push ebp
push eax
mov ecx, edi
call fcn.00401e10
lea ecx, [esi + 0xb84]
call fcn.00402370
mov dword [esi + 0xfc0], 1
mov ecx, dword [str.0123456789abcdefg]
mov eax, dword [0x42f528]
mov edx, dword [0x42f524]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_chix.wav]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f5c8]
mov dword [esp + 0x1c], eax
mov ax, word [0x42f5d0]
mov word [esp + 0x40], dx
mov edx, dword [0x42f5cc]
mov dword [esp + 0x20], ecx
mov cl, byte [0x42f5d2]
mov word [esp + 0x28], ax
mov eax, dword [0x42fa1c]
mov dword [esp + 0x24], edx
xor edx, edx
mov word [esp + 0x42], bx
mov byte [esp + 0x2a], cl
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x2b], edx
mov byte [esp + 0x2f], dl
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
add eax, 0x1c
mov dword [0x42fa18], eax
lea eax, [esp + 0x20]
push eax
push ebx
push ebx
mov byte [esp + 0x35], dl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp al, bl
jne 0x408ab6
push 0xd
mov ecx, edi
mov byte [esi + 0x10a6], 1
call fcn.004022f0
push eax
mov ecx, edi
call fcn.00401390
test al, al
je 0x4088d5
mov dword [esi + 0xfc0], 6
mov ecx, dword [str.0123456789abcdefg]
mov edx, dword [0x42f524]
mov eax, dword [0x42f528]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f598]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_zimox.wav]
mov word [esp + 0x40], dx
mov edx, dword [0x42f59c]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x42fa1c]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42f5a0]
mov dword [esp + 0x24], edx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea edx, [esp + 0x1c]
push 0x64
push edx
mov cl, byte [esp + eax + 0x38]
add eax, 0x20
push ebx
push ebx
mov byte [esp + 0x36], cl
mov dword [0x42fa18], eax
call fcn.0040f8d0
add esp, 0x10
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov ecx, edi
call fcn.004012c0
test al, al
mov ecx, edi
je 0x4089c6
call fcn.004023d0
mov ebp, eax
cmp ebp, 0xe
jge 0x408aec
push ebp
mov ecx, edi
call fcn.00401b40
test al, al
jne 0x408912
inc ebp
cmp ebp, 0xe
jl 0x4088f6
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10af], 1
mov dword [esi + 0xfc0], 8
mov eax, dword [str.0123456789abcdefg]
mov ecx, dword [0x42f524]
mov edx, dword [0x42f528]
mov dword [esp + 0x30], eax
mov eax, dword [0x42f52c]
mov dword [esp + 0x34], ecx
mov cx, word [0x42f530]
mov dword [esp + 0x3c], eax
mov eax, dword [0x42f5a8]
mov dword [esp + 0x38], edx
mov edx, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], cx
mov ecx, dword [0x42f5ac]
mov dword [esp + 0x20], eax
mov eax, dword [0x42fa1c]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], edx
mov edx, dword [0x42f5b0]
mov dword [esp + 0x24], ecx
mov cl, byte [esp + eax + 0x30]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
push 0x64
mov dl, byte [esp + eax + 0x34]
add eax, 0x14
mov dword [0x42fa18], eax
lea eax, [esp + 0x20]
push eax
push ebx
push ebx
mov byte [esp + 0x36], dl
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
call fcn.00401330
test al, al
je 0x408aec
mov ecx, edi
call fcn.004023d0
mov ebp, eax
cmp ebp, 0xe
jge 0x408aec
push ebp
mov ecx, edi
call fcn.00401ca0
test al, al
jne 0x408a01
inc ebp
cmp ebp, 0xe
jl 0x4089e5
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10af], 1
mov dword [esi + 0xfc0], 7
mov ecx, dword [str.0123456789abcdefg]
mov edx, dword [0x42f524]
mov eax, dword [0x42f528]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x42f52c]
mov dword [esp + 0x34], edx
mov dx, word [0x42f530]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x42f5a8]
mov dword [esp + 0x38], eax
mov eax, dword [str.pwavx_gangx.wav]
mov word [esp + 0x40], dx
mov edx, dword [0x42f5ac]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x42fa1c]
mov word [esp + 0x42], bx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42f5b0]
mov dword [esp + 0x24], edx
mov dl, byte [esp + ecx + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x20], dl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and eax, 3
lea edx, [esp + 0x1c]
push 0x64
push edx
mov cl, byte [esp + eax + 0x38]
add eax, 0x14
push ebx
push ebx
mov byte [esp + 0x36], cl
mov dword [0x42fa18], eax
call fcn.0040f8d0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov ecx, edi
call fcn.004023c0
cmp eax, 0x14
jl 0x408ad6
mov dword [esi + 0xfc0], 0xb
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x6c
ret
mov byte [esi + 0x10af], bl
mov byte [esi + 0x10a6], bl
mov dword [esi + 0xfc0], 9
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x6c
ret