Function at 0x4014f0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x134
push ebx
push esi
push edi
mov esi, ecx
push ebp
call sub.WINMM.dll_waveOutGetNumDevs
lea ecx, [esp + 0x44]
cmp eax, 1
sbb al, al
push ecx
inc al
mov ecx, esi
mov byte [esi + 0x138], al
call sub.SV221MN.dll_Ordinal_1845
push eax
lea ecx, [esi + 0x180]
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x44]
call sub.TL221MN.dll_Ordinal_137
push 2
call sub.SV221MN.dll_Ordinal_1364
mov ecx, eax
call sub.SV221MN.dll_Ordinal_1353
call sub.SV221MN.dll_Ordinal_1364
mov ecx, eax
call sub.SV221MN.dll_Ordinal_1359
cmp dword [0x414004], 0
mov ebx, eax
jne 0x40155e
push 0x412018
call sub.SV221MN.dll_Ordinal_56
mov edi, 0x3e8
xor ebp, ebp
mov word [esp + 0x48], di
push 0xffff
lea eax, [esp + 0x48]
mov ecx, ebx
mov dword [esp + 0x48], ebp
push eax
inc dword [0x414004]
mov word [esp + 0x52], 0x100
call sub.SV221MN.dll_Ordinal_1513
push 0x8c
call fcn.0040c3b5
add esp, 4
test eax, eax
je 0x4015bd
mov word [esp + 0x48], di
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], ebp
push ecx
mov word [esp + 0x4e], 0x100
mov ecx, eax
call sub.SV221MN.dll_Ordinal_1474
mov edi, eax
jmp 0x4015bf
xor edi, edi
dec dword [0x414004]
jne 0x4015ce
push 0
call sub.SV221MN.dll_Ordinal_56
push edi
mov ecx, ebx
push 0x5a
call sub.SV221MN.dll_Ordinal_1491
lea eax, [esp + 0x24]
push 0x63
push eax
mov ecx, edi
call sub.SV221MN.dll_Ordinal_1506
push 7
mov eax, dword [esi + 0x180]
mov ax, word [eax]
lea ecx, [esi + 0x180]
push eax
push 0
push ecx
lea ecx, [esp + 0x34]
call sub.TL221MN.dll_Ordinal_167
push eax
mov ecx, edi
push 0x63
call sub.SV221MN.dll_Ordinal_1533
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], 0x402270
push ecx
mov ecx, edi
call sub.SV221MN.dll_Ordinal_1526
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], 0x402240
push ecx
mov ecx, edi
call sub.SV221MN.dll_Ordinal_1523
mov byte [esi + 0x16c], 0
push 0xb8
call fcn.0040c3b5
add esp, 4
mov edi, eax
test edi, edi
je 0x401693
mov ecx, edi
call sub.SV221MN.dll_Ordinal_1700
lea eax, [esp + 0x44]
push 1
push eax
mov dword [edi + 0xb0], esi
mov dword [edi + 0xb4], esi
mov dword [edi], 0x413098
mov ecx, dword [edi + 0xb0]
mov ebx, dword [ecx]
call dword [ebx + 4]
push eax
mov ecx, edi
call sub.SV221MN.dll_Ordinal_1706
mov dword [esi + 0x11c], edi
jmp 0x40169d
mov dword [esi + 0x11c], 0
xor edi, edi
push edi
call fcn.0040c3ec
add esp, 4
and eax, 0xffff
push eax
call fcn.0040c3c4
add esp, 4
mov ecx, dword [0x415560]
call sub.SV221MN.dll_Ordinal_1354
lea ecx, [esp + 0x3c]
push str.24_Games_for_Windows_95
call sub.TL221MN.dll_Ordinal_134
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], edi
call sub.TL221MN.dll_Ordinal_136
lea ecx, [esp + 0x44]
push str.General
call sub.TL221MN.dll_Ordinal_134
lea ecx, [esp + 0x3c]
push eax
call fcn.00401040
lea ecx, [esp + 0x44]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
push str.AnimationDelay
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], edi
je 0x401754
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
lea ebx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], edi
push edx
mov ecx, dword [esp + 0x48]
push ebx
mov dword [esp + 0x44], 0x100
push edi
mov eax, dword [eax]
add eax, 4
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push eax
push ecx
call edi
test eax, eax
jne 0x40175a
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401763
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x18]
cmp word [eax], 0
je 0x4017a0
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_184
mov dword [section..data], eax
jmp 0x40183b
call sub.SV221MN.dll_Ordinal_1417
cmp eax, 1
je 0x4017c0
cmp eax, 2
je 0x4017cc
cmp eax, 4
je 0x4017d8
mov dword [section..data], 0x2710
jmp 0x4017e2
mov dword [section..data], 0
jmp 0x4017e2
mov dword [section..data], 0x1770
jmp 0x4017e2
mov dword [section..data], 0x36b0
mov eax, dword [section..data]
lea ecx, [esp + 0x38]
push eax
call sub.TL221MN.dll_Ordinal_133
mov ebx, eax
push str.AnimationDelay
lea ecx, [esp + 0x48]
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], 0
je 0x401829
mov ecx, dword [ebx]
xor edx, edx
mov dx, word [ecx]
add ecx, 4
push edx
mov eax, dword [eax]
push ecx
add eax, 4
mov ecx, dword [esp + 0x48]
push 1
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [esp + 0x44]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x38]
call sub.TL221MN.dll_Ordinal_137
lea eax, [esi + 0x180]
lea ecx, [esp + 0x3c]
push eax
call fcn.00401040
lea ecx, [esp + 0x30]
push str.SkillLevel
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], 0
je 0x4018a2
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
lea ebx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x100
push edx
mov eax, dword [eax]
push ebx
add eax, 4
mov ecx, dword [esp + 0x4c]
push 0
push eax
push ecx
call edi
test eax, eax
jne 0x4018a2
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x4018ab
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x18]
cmp word [eax], 0
je 0x4018e7
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_180
mov word [esi + 0x10c], ax
jmp 0x4018f0
mov word [esi + 0x10c], 0
lea ecx, [esp + 0x30]
push str.Background
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], 0
je 0x401947
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
lea ebx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x100
push edx
mov eax, dword [eax]
push ebx
add eax, 4
mov ecx, dword [esp + 0x4c]
push 0
push eax
push ecx
call edi
test eax, eax
jne 0x401947
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401950
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x2c]
lea ebx, [esi + 0x10e]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x18]
cmp word [eax], 0
je 0x40198b
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_180
jmp 0x40199b
mov ecx, esi
call sub.SV221MN.dll_Ordinal_1838
mov ecx, 0x64
sub edx, edx
div ecx
mov byte [ebx], al
mov byte [esi + 0x10f], al
mov al, byte [ebx]
cmp al, 0x10
jb 0x401a27
cmp al, 0x1f
jb 0x4019b0
mov byte [ebx], 0x1e
cmp dword [0x414004], 0
jne 0x4019c3
push 0x412018
call sub.SV221MN.dll_Ordinal_56
push 4
inc dword [0x414004]
call fcn.0040c3b5
add esp, 4
test eax, eax
je 0x401a0c
mov cl, byte [ebx]
lea edx, [esp + 0x44]
and ecx, 0xffff00ff
push edx
add cx, 0x43c
mov word [esp + 0x4c], cx
mov ecx, eax
mov dword [esp + 0x48], 0
mov word [esp + 0x4e], 0x100
call sub.SV221MN.dll_Ordinal_1773
mov dword [esi + 0x110], eax
jmp 0x401a16
mov dword [esi + 0x110], 0
dec dword [0x414004]
jne 0x401a31
push 0
call sub.SV221MN.dll_Ordinal_56
jmp 0x401a31
mov dword [esi + 0x110], 0
lea ecx, [esp + 0x30]
push str.SoundEnabled
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], 0
je 0x401a88
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
lea ebx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x100
push edx
mov eax, dword [eax]
push ebx
add eax, 4
mov ecx, dword [esp + 0x4c]
push 0
push eax
push ecx
call edi
test eax, eax
jne 0x401a88
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401a91
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x18]
cmp word [eax], 0
je 0x401acc
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_180
mov byte [esi + 0x115], al
jmp 0x401ad3
mov byte [esi + 0x115], 1
lea ecx, [esp + 0x30]
push str.AnimationSpeed
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], 0
je 0x401b2a
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
lea ebx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x100
push edx
mov eax, dword [eax]
push ebx
add eax, 4
mov ecx, dword [esp + 0x4c]
push 0
push eax
push ecx
call edi
test eax, eax
jne 0x401b2a
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401b33
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x2c]
lea ebx, [esi + 0x114]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x18]
cmp word [eax], 0
je 0x401b70
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_180
mov byte [ebx], al
jmp 0x401b73
mov byte [ebx], 0xff
mov al, byte [ebx]
cmp al, 0xf
jg 0x401b7d
cmp al, 0xff
jge 0x401b80
mov byte [ebx], 0xff
lea ecx, [esp + 0x30]
push str.ShowDragZones
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], 0
je 0x401bd7
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
lea ebx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x100
push edx
mov eax, dword [eax]
push ebx
add eax, 4
mov ecx, dword [esp + 0x4c]
push 0
push eax
push ecx
call edi
test eax, eax
jne 0x401bd7
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401be0
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x18]
cmp word [eax], 0
je 0x401c1b
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_180
mov byte [esi + 0x116], al
jmp 0x401c22
mov byte [esi + 0x116], 0xff
lea ecx, [esp + 0x30]
push str.ShowDropZones
call sub.TL221MN.dll_Ordinal_134
cmp dword [esp + 0x40], 0
je 0x401c79
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
lea ebx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x100
push edx
mov eax, dword [eax]
push ebx
add eax, 4
mov ecx, dword [esp + 0x4c]
push 0
push eax
push ecx
call edi
test eax, eax
jne 0x401c79
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401c82
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x18]
cmp word [eax], 0
je 0x401cbd
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_180
mov byte [esi + 0x117], al
jmp 0x401cc4
mov byte [esi + 0x117], 0xff
xor ebx, ebx
lea ecx, [esp + 0x2c]
push ebx
call sub.TL221MN.dll_Ordinal_129
mov ebp, eax
push str.Sound
lea ecx, [esp + 0x34]
call sub.TL221MN.dll_Ordinal_134
lea ecx, [esp + 0x20]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x20]
push ebp
call sub.TL221MN.dll_Ordinal_148
lea eax, [esp + 0x20]
lea ecx, [esp + 0x28]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x20]
call sub.TL221MN.dll_Ordinal_137
cmp dword [esp + 0x40], ebx
je 0x401d50
lea eax, [esp + 0x38]
lea ecx, [esp + 0x44]
lea edx, [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
add eax, 4
mov ecx, dword [esp + 0x4c]
push ebx
mov dword [esp + 0x44], ebx
push eax
mov dword [esp + 0x4c], 0x100
push ecx
call edi
test eax, eax
jne 0x401d50
lea eax, [esp + 0x44]
lea ecx, [esp + 0x10]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401d59
lea ecx, [esp + 0x10]
call sub.TL221MN.dll_Ordinal_136
lea ecx, [esp + 0x28]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x10]
cmp word [eax], 0
je 0x401edb
lea ecx, [esp + 0x10]
push 0
push 0x2c
call sub.TL221MN.dll_Ordinal_173
lea ecx, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push 0
push eax
call sub.TL221MN.dll_Ordinal_156
lea ecx, [esp + 0x10]
push 1
push 0
call sub.TL221MN.dll_Ordinal_158
push 8
call fcn.0040c3b5
add esp, 4
mov ebp, eax
test ebp, ebp
je 0x401de7
mov ecx, ebp
call sub.TL221MN.dll_Ordinal_136
lea ecx, [ebp + 4]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x20]
mov ecx, ebp
push eax
call sub.TL221MN.dll_Ordinal_138
lea eax, [esp + 0x10]
lea ecx, [ebp + 4]
push eax
call sub.TL221MN.dll_Ordinal_138
jmp 0x401de9
xor ebp, ebp
inc bx
push 0xffffffffffffffff
push ebp
lea ecx, [esi + 0x120]
call sub.TL221MN.dll_Ordinal_241
lea ecx, [esp + 0x2c]
push ebx
call sub.TL221MN.dll_Ordinal_129
mov ebp, eax
push str.Sound
lea ecx, [esp + 0x34]
call sub.TL221MN.dll_Ordinal_134
lea ecx, [esp + 0x1c]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x1c]
push ebp
call sub.TL221MN.dll_Ordinal_148
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x28]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x1c]
call sub.TL221MN.dll_Ordinal_137
cmp dword [esp + 0x40], 0
je 0x401e89
lea eax, [esp + 0x38]
lea ecx, [esp + 0x44]
lea edx, [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
add eax, 4
mov ecx, dword [esp + 0x4c]
push 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0x100
push eax
push ecx
call edi
test eax, eax
jne 0x401e89
lea eax, [esp + 0x44]
lea ecx, [esp + 0x14]
push eax
call sub.TL221MN.dll_Ordinal_134
jmp 0x401e92
lea ecx, [esp + 0x14]
call sub.TL221MN.dll_Ordinal_136
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
call sub.TL221MN.dll_Ordinal_138
lea ecx, [esp + 0x14]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x28]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x2c]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x20]
call sub.TL221MN.dll_Ordinal_137
mov eax, dword [esp + 0x10]
cmp word [eax], 0
jne 0x401d82
lea ecx, [esp + 0x44]
push str._Start
call sub.TL221MN.dll_Ordinal_134
mov edi, eax
lea ecx, [esp + 0x30]
lea eax, [esi + 0x180]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x30]
push edi
call sub.TL221MN.dll_Ordinal_148
lea eax, [esp + 0x30]
lea ecx, [esp + 0x34]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x38]
call sub.TL221MN.dll_Ordinal_136
push eax
mov ecx, esi
lea eax, [esp + 0x38]
push eax
call fcn.00402ab0
lea ecx, [esp + 0x34]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x44]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x38]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x44]
push str._Exit
call sub.TL221MN.dll_Ordinal_134
mov ebx, eax
lea ecx, [esp + 0x30]
lea eax, [esi + 0x180]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x30]
push ebx
call sub.TL221MN.dll_Ordinal_148
lea eax, [esp + 0x30]
lea ecx, [esp + 0x34]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x38]
call sub.TL221MN.dll_Ordinal_136
push eax
mov ecx, esi
lea eax, [esp + 0x38]
push eax
call fcn.00402ab0
lea ecx, [esp + 0x34]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x44]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x38]
call sub.TL221MN.dll_Ordinal_137
push str._Start
lea ecx, [esp + 0x3c]
call sub.TL221MN.dll_Ordinal_134
mov edi, eax
lea ecx, [esp + 0x30]
lea eax, [esi + 0x180]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x30]
push edi
call sub.TL221MN.dll_Ordinal_148
lea eax, [esp + 0x30]
lea ecx, [esp + 0x34]
push eax
call sub.TL221MN.dll_Ordinal_125
lea ecx, [esp + 0x30]
call sub.TL221MN.dll_Ordinal_137
lea eax, [esp + 0x34]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, esi
call fcn.00402a50
cmp byte [esi + 0x138], 0
je 0x402036
cmp byte [esi + 0x115], 0
je 0x402036
mov eax, dword [eax]
cmp word [eax], 0
je 0x402036
push 3
add eax, 4
push eax
call sub.WINMM.dll_sndPlaySoundA
lea ecx, [esp + 0x44]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x34]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x38]
call sub.TL221MN.dll_Ordinal_137
push 0xfffffffffffffffe
call sub.SV221MN.dll_Ordinal_1461
mov ecx, esi
call sub.SV221MN.dll_Ordinal_1885
mov ecx, esi
call sub.SV221MN.dll_Ordinal_1927
test al, al
jne 0x40211c
mov ecx, esi
call sub.SV221MN.dll_Ordinal_1928
test al, al
jne 0x40211c
push 0x3e
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
call ebx
mov di, ax
push 0x3d
call ebx
mov bx, ax
mov ecx, esi
lea eax, [esp + 0x38]
push eax
call sub.SV221MN.dll_Ordinal_1844
lea eax, [esp + 0x34]
mov ecx, esi
push eax
call sub.SV221MN.dll_Ordinal_1843
mov cx, word [esp + 0x34]
movsx ebp, word [esp + 0x38]
movsx eax, cx
mov dx, word [esp + 0x36]
add eax, ebp
movsx ebp, bx
cmp eax, ebp
jle 0x4020d7
sub bx, word [esp + 0x38]
mov word [esp + 0x34], bx
jns 0x4020d7
mov word [esp + 0x34], 0
movsx ebx, word [esp + 0x36]
movsx eax, word [esp + 0x3a]
movsx ebp, di
add ebx, eax
cmp ebx, ebp
jle 0x4020fd
sub di, word [esp + 0x3a]
mov word [esp + 0x36], di
jns 0x4020fd
mov word [esp + 0x36], 0
cmp cx, word [esp + 0x34]
jne 0x40210b
cmp dx, word [esp + 0x36]
je 0x40211c
lea eax, [esp + 0x34]
lea ecx, [esp + 0x44]
push eax
push ecx
mov ecx, esi
call sub.SV221MN.dll_Ordinal_1823
lea ecx, [esp + 0x10]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x18]
call sub.TL221MN.dll_Ordinal_137
cmp dword [esp + 0x40], 0
je 0x402140
mov eax, dword [esp + 0x40]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x3c]
call sub.TL221MN.dll_Ordinal_137
lea ecx, [esp + 0x24]
call sub.TL221MN.dll_Ordinal_137
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x134
ret