Function at 0x403bbf
Capabilities:
Create thread

Disassembly:
mov eax, dword [esp + 8]
sub esp, 4
cmp eax, 0x190
push ebx
push esi
push edi
push ebp
jg 0x403a73
je 0x403b11
cmp eax, 0x12c
je 0x403af1
cmp eax, 0x12d
je 0x403afb
jmp case.0x403aea.1008
cmp eax, 0x1f5
jg 0x403a95
je 0x403bec
sub eax, 0x191
cmp eax, 5
ja case.0x403aea.1008
jmp dword [eax*4 + 0x403e68]
cmp eax, 0x25a
jg 0x403ab7
je 0x403c72
sub eax, 0x1f6
cmp eax, 3
ja case.0x403aea.1008
jmp dword [eax*4 + 0x403e80]
cmp eax, 0x3e8
jg 0x403ad4
je 0x403cb4
cmp eax, 0x25b
je 0x403c9b
jmp case.0x403aea.1008
sub eax, 0x3e9
cmp eax, 0xc
ja case.0x403aea.1008
xor ecx, ecx
mov cl, byte [eax + 0x403eb0]
jmp dword [ecx*4 + 0x403e90]
call fcn.00407a50
jmp case.0x403aea.1008
mov eax, dword [esp + 0x18]
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
jmp case.0x403aea.1008
call fcn.00404d00
jmp case.0x403aea.1008
call fcn.00404de0
jmp case.0x403aea.1008
call fcn.00404c40
jmp case.0x403aea.1008
mov dword [0x40f53c], 1
xor eax, eax
mov dword [0x40f208], eax
mov dword [0x40f220], eax
cmp dword [esp + 0x24], eax
jne 0x403b50
call fcn.00405c70
push 1
call fcn.00406180
add esp, 4
jmp case.0x403aea.1008
mov dword [0x40f220], 1
xor eax, eax
mov dword [0x40f53c], eax
mov dword [0x40f208], eax
cmp dword [esp + 0x24], eax
jne 0x403b80
call fcn.00405c70
push 1
call fcn.00406180
add esp, 4
jmp case.0x403aea.1008
mov dword [0x40f208], 1
xor eax, eax
mov dword [0x40f53c], eax
mov dword [0x40f220], eax
cmp dword [esp + 0x24], eax
jne 0x403bb0
call fcn.00405c70
push 1
call fcn.00406180
add esp, 4
jmp case.0x403aea.1008
lea eax, [esp + 0x10]
push eax
push 0
push 0
push 0x406880
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, 0xffffffff
je case.0x403aea.1008
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x403aea.1008
call fcn.00405d70
test eax, eax
je case.0x403aea.1008
call fcn.0040c9d0
cmp dword [0x40f3a0], 1
sbb eax, eax
neg eax
mov dword [0x40f3a0], eax
jmp case.0x403aea.1008
cmp dword [0x40f4ec], 1
sbb eax, eax
neg eax
mov dword [0x40f4ec], eax
jmp case.0x403aea.1008
cmp dword [0x40f540], 1
sbb eax, eax
neg eax
mov dword [0x40f540], eax
jmp case.0x403aea.1008
cmp dword [0x40f168], 1
sbb eax, eax
neg eax
mov dword [0x40f168], eax
jmp case.0x403aea.1008
mov eax, dword [esp + 0x18]
push 0
push 0x40bc30
mov ecx, dword [0x40f4e4]
push eax
push 0x71
push ecx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
jmp case.0x403aea.1008
mov eax, dword [0x40f3a4]
push eax
push 0x40fa40
push 0xc1d
call fcn.00405390
add esp, 4
push eax
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.SHELL32.dll_ShellAboutA]
jmp case.0x403aea.1008
mov eax, dword [esp + 0x18]
push 0
push 0xb
push str.cdplayer.hlp
push eax
call dword [sym.imp.USER32.dll_WinHelpA]
jmp case.0x403aea.1008
mov eax, dword [0x40f234]
mov ecx, dword [eax*4 + 0x40f3b0]
test byte [ecx + 0xd], 1
je 0x403cd7
cmp dword [esp + 0x24], 1
jne 0x403cd7
call fcn.00407520
jmp case.0x403aea.1008
call fcn.00407410
jmp case.0x403aea.1008
call fcn.00407520
jmp case.0x403aea.1008
call fcn.00407620
jmp case.0x403aea.1008
call fcn.00407700
jmp case.0x403aea.1008
call fcn.00407810
jmp case.0x403aea.1008
call fcn.00407380
jmp case.0x403aea.1008
cmp dword [esp + 0x24], 1
jne case.0x403aea.1008
mov esi, dword [0x40f234]
mov ebx, dword [0x40f514]
push 0
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0x147
push ebx
call edi
push 1
push eax
call fcn.0040c530
add esp, 8
call fcn.00405dc0
cmp dword [0x40f234], esi
jne case.0x403aea.1008
push 0
push esi
push 0x14e
push ebx
call edi
jmp case.0x403aea.1008
mov ecx, dword [esp + 0x24]
cmp ecx, 8
je 0x403d7f
cmp ecx, 9
je 0x403e07
jmp case.0x403aea.1008
mov eax, dword [0x40f234]
mov ebx, dword [0x40f524]
push 0
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [eax*4 + 0x40f3b0]
push 0
push 0x147
push ebx
mov esi, dword [ecx + 0x41d]
call edi
mov ecx, dword [0x40f234]
mov ebp, dword [ecx*4 + 0x40f3b0]
mov edx, dword [ebp + 0x39d]
mov ebp, edx
test ebp, ebp
je case.0x403aea.1008
test esi, esi
je case.0x403aea.1008
xor ecx, ecx
test ebp, ebp
je 0x403de0
cmp ecx, eax
jge 0x403de0
inc ecx
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x403dd4
cmp esi, ebp
je case.0x403aea.1008
xor eax, eax
test edx, edx
je case.0x403aea.1008
cmp esi, edx
je 0x403df6
inc eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x403dea
test edx, edx
je case.0x403aea.1008
push 0
push eax
push 0x14e
push ebx
call edi
jmp case.0x403aea.1008
push 0
mov eax, dword [0x40f524]
push 0
push 0x147
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x40f234]
mov ecx, dword [ecx*4 + 0x40f3b0]
mov esi, dword [ecx + 0x39d]
test esi, esi
je case.0x403aea.1008
mov ecx, dword [ecx + 0x41d]
xor edx, edx
cmp edx, eax
jge 0x403e47
inc edx
mov esi, dword [esi + 4]
test esi, esi
jne 0x403e3b
cmp esi, ecx
je case.0x403aea.1008
push esi
mov eax, dword [0x40f234]
push eax
call fcn.0040d5a0
add esp, 8
call fcn.00405b00
pop ebp
pop edi
pop esi
pop ebx
add esp, 4
ret