Function at 0x10001200
Capabilities:
Create thread
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x14]
cmp esi, 0x803
jne 0x10001279
test ebx, 0x1000
je 0x1000122a
mov eax, 0x204
cmp word [edi + 8], ax
je 0x10001269
mov eax, ebx
and eax, 0x3000
cmp eax, 0x2000
jne 0x10001279
mov eax, dword [edi + 8]
mov ecx, str.cdaudio
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10001260
test dl, dl
je 0x1000125c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10001260
add eax, 2
add ecx, 2
test dl, dl
jne 0x10001240
xor eax, eax
jmp 0x10001265
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001279
mov dword [edi + 4], 0xbeef
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
mov eax, dword [ebp + 8]
cmp eax, 0xbeef
je 0x10001298
test eax, eax
je 0x10001298
cmp eax, 0xffffffff
je 0x10001298
pop edi
pop esi
mov eax, 0x105
pop ebx
pop ebp
ret 0x10
cmp esi, 0x80d
jne 0x100012bd
test ebx, 0x400
je 0x100015cf
mov eax, dword [edi + 4]
pop edi
pop esi
mov dword [0x100538a4], eax
xor eax, eax
pop ebx
pop ebp
ret 0x10
cmp esi, 0x806
jne 0x1000147c
mov ecx, dword [0x100542f8]
mov eax, ebx
and eax, 4
mov dword [ebp + 0xc], eax
mov eax, dword [0x100538a4]
je 0x100013ad
cmp eax, 0xa
jne 0x100012f0
movzx esi, byte [edi + 4]
jmp 0x10001388
test eax, eax
jne 0x10001385
xor esi, esi
mov ecx, 0x10055024
mov dword [0x100538ac], esi
xor ebx, ebx
mov dword [ebp + 0x14], ecx
nop word [eax + eax]
mov eax, 0x10624dd3
mul dword [edi + 4]
mov eax, 0x10624dd3
shr edx, 6
cmp dword [ecx - 0x10c], edx
cmove esi, ebx
mov dword [0x100538ac], esi
mul dword [edi + 4]
shr edx, 6
cmp dword [ecx], edx
mov ecx, ebx
jne 0x10001344
lea esi, [ebx + 1]
mov dword [0x100538ac], esi
mov eax, 0x10624dd3
add ecx, 2
mul dword [edi + 4]
mov eax, dword [ebp + 0x14]
shr edx, 6
cmp dword [eax + 0x10c], edx
cmove esi, ecx
mov ecx, eax
add ecx, 0x324
mov dword [0x100538ac], esi
add ebx, 3
mov dword [ebp + 0x14], ecx
cmp ecx, 0x1005b7c8
jl 0x10001310
mov ebx, dword [ebp + 0x10]
mov ecx, dword [0x100542f8]
jmp 0x10001388
mov esi, dword [edi + 4]
cmp esi, dword [0x100538a0]
mov eax, dword [0x100538a4]
cmovl esi, dword [0x100538a0]
cmp esi, ecx
cmovg esi, ecx
mov dword [0x100538ac], esi
mov dword [0x100538b0], esi
jmp 0x100013b3
mov esi, dword [0x100538ac]
test bl, 8
je 0x10001428
cmp eax, 0xa
jne 0x100013c3
movzx ebx, byte [edi + 8]
jmp 0x1000140f
test eax, eax
jne 0x1000140c
mov ebx, esi
mov eax, esi
mov dword [0x100538b0], eax
cmp ebx, 0x63
jge 0x10001416
mov eax, 0x10624dd3
imul ecx, ebx, 0x10c
mul dword [edi + 4]
shr edx, 6
add ecx, 0x10054f18
nop dword [eax]
mov eax, dword [ecx - 4]
add eax, dword [ecx]
cmp eax, edx
ja 0x1000140f
add ecx, 0x10c
inc ebx
cmp ecx, 0x1005b6bc
jl 0x100013f0
mov eax, esi
jmp 0x10001416
mov ebx, dword [edi + 8]
cmp ebx, esi
mov eax, ebx
cmovl eax, esi
cmp eax, dword [0x100542f8]
cmovg eax, dword [0x100542f8]
mov dword [0x100538b0], eax
test esi, esi
je 0x100015cf
cmp dword [ebp + 0xc], 0
je 0x100015cf
mov eax, dword [0x10054b00]
test eax, eax
je 0x1000144c
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push 0
push 0
push 0x100538ac
push 0x100010c0
push 0
push 0
mov dword [0x100542fc], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
mov dword [0x10054b00], eax
xor eax, eax
pop ebx
pop ebp
ret 0x10
cmp esi, 0x808
je 0x1000148c
cmp esi, 0x809
jne 0x1000149b
mov dword [0x100542fc], 0
call fcn.10001910
cmp esi, 0x814
jne 0x100015cf
mov dword [edi + 4], 0
test ebx, 0x100
je 0x100015cf
mov ecx, dword [edi + 8]
cmp ecx, 1
jne 0x1000152b
imul eax, dword [edi + 0xc], 0x10c
mov esi, dword [eax + 0x10054f14]
test esi, esi
je 0x100015cf
cmp dword [0x100538a4], 0
jne 0x100014f2
imul eax, esi, 0x3e8
mov dword [edi + 4], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 2
sub esi, eax
movzx eax, cl
shl esi, 8
and esi, 0xffff00
or esi, eax
xor eax, eax
mov dword [edi + 4], esi
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
cmp ecx, 5
jne 0x10001547
xor eax, eax
cmp dword [0x100542f8], eax
setg al
mov dword [edi + 4], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
cmp ecx, 3
jne 0x1000155d
mov eax, dword [0x10054b04]
mov dword [edi + 4], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
cmp ecx, 2
jne 0x1000159d
test bl, 0x10
je 0x100015cf
cmp dword [0x100538a4], 0
jne 0x1000158d
imul eax, dword [edi + 0xc], 0x10c
imul eax, dword [eax + 0x10054f18], 0x3e8
mov dword [edi + 4], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
movzx eax, byte [edi + 0xc]
mov dword [edi + 4], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
cmp ecx, 4
jne 0x100015be
xor eax, eax
cmp dword [0x100542fc], eax
setne al
add eax, 0x20d
mov dword [edi + 4], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
mov eax, dword [edi + 4]
cmp ecx, 7
mov edx, 1
cmove eax, edx
mov dword [edi + 4], eax
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0x10