Function at 0x4012c0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
push ebx
push esi
push edi
lea edi, [ebp - 0x78]
mov ecx, 0x1e
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
cmp dword [ebp + 8], 0
jne 0x4012e5
xor al, al
jmp 0x4016ee
mov eax, dword [ebp + 8]
push eax
call fcn.00401700
add esp, 4
cmp dword [0x40b104], 0
je 0x40131e
cmp dword [0x40b108], 0
je 0x40131e
cmp dword [0x40b10c], 0
je 0x40131e
cmp dword [0x40b110], 0
je 0x40131e
cmp dword [0x40b114], 0
jne 0x401325
xor al, al
jmp 0x4016ee
fild dword [section..data]
fdivr dword [0x409210]
fstp dword [0x412530]
mov eax, dword [section..data]
imul eax, eax, 0x14
cdq
mov ecx, 0x3e8
idiv ecx
add eax, 3
and al, 0xfc
mov dword [0x410de4], eax
mov eax, dword [0x40b004]
cdq
mov ecx, 0x14
idiv ecx
mov edx, dword [0x410de4]
imul edx, eax
mov dword [0x410de8], edx
mov eax, dword [0x410de8]
shl eax, 1
mov dword [0x410de8], eax
mov eax, dword [section..data]
shl eax, 7
cdq
mov ecx, 0xac44
idiv ecx
mov dword [0x40b174], eax
mov edx, dword [0x40b174]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], 0
fild qword [ebp - 0x38]
fdivr dword [0x409210]
fstp dword [0x40b178]
mov eax, dword [0x410de8]
cdq
idiv dword [0x410de4]
mov dword [ebp - 0xc], eax
push 0x5800
push 0
push 0x40b5a0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 4], 0
jmp 0x4013e2
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x100
jge 0x40140c
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x58
mov edx, dword [ebp - 4]
mov dword [ecx + 0x40b5a0], edx
mov eax, dword [ebp - 4]
imul eax, eax, 0x58
mov dword [eax + 0x40b5d4], 1
jmp 0x4013d9
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx + 0x128]
mov eax, dword [ebp + 8]
mov dword [eax + 0x12c], edx
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + 0x24]
mov eax, dword [ebp + 8]
mov dword [eax + 0x138], edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x140], 0
mov edx, dword [ebp + 8]
mov dword [edx + 0x144], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x150], 0xffffffff
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14c], 0xffffffff
mov edx, dword [ebp + 8]
mov dword [edx + 8], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x134], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], 0
mov edx, dword [ebp + 8]
mov dword [edx + 0x154], 0
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 0x26]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00401000
add esp, 8
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 0x14]
imul ecx, ecx, 0xac
push ecx
push 0
push 0x410e00
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 4], 0
jmp 0x4014d8
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 0x14]
cmp dword [ebp - 4], ecx
jge 0x401509
mov edx, dword [ebp - 4]
imul edx, edx, 0xac
add edx, 0x410e00
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
imul eax, eax, 0x58
add eax, 0x40b5a0
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], eax
jmp 0x4014cf
mov edx, dword [ebp + 8]
mov dword [0x40b100], edx
mov esi, esp
push 1
mov eax, dword [ebp - 0xc]
imul eax, eax, 6
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
add esp, 8
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov dword [0x4124f8], eax
mov word [ebp - 0x20], 1
mov word [ebp - 0x1e], 2
mov word [ebp - 0x12], 0x10
mov eax, dword [ebp - 0x1e]
and eax, 0xffff
mov ecx, dword [ebp - 0x12]
and ecx, 0xffff
imul eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
mov word [ebp - 0x14], ax
mov edx, dword [section..data]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x14]
and eax, 0xffff
mov ecx, dword [ebp - 0x1c]
imul ecx, eax
mov dword [ebp - 0x18], ecx
mov word [ebp - 0x10], 0
mov esi, esp
push 0
push 0
push 0
lea edx, [ebp - 0x20]
push edx
push 0xffffffffffffffff
push 0x4124fc
call dword [sym.imp.WINMM.dll_waveOutOpen]
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x4015b5
xor al, al
jmp 0x4016ee
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0x410dc0
mov eax, dword [0x410de8]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
shl ecx, 2
mov dword [ebp - 0x2c], ecx
mov esi, esp
push 1
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
add esp, 8
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov dword [0x410de0], eax
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x10], 0xc
mov ecx, dword [ebp - 0x28]
mov edx, dword [0x410de0]
mov dword [ecx], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x28]
mov dword [edx + 8], 0
mov eax, dword [ebp - 0x28]
mov dword [eax + 0xc], 0
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 0x14], 0xffffffff
mov esi, esp
push 0x20
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [0x4124fc]
push eax
call dword [sym.imp.WINMM.dll_waveOutPrepareHeader]
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov esi, esp
push 1
mov ecx, dword [0x410de8]
lea edx, [ecx*8 + 0x100]
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
add esp, 8
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov dword [0x412380], eax
mov eax, dword [0x412380]
add eax, 0xf
and al, 0xf0
mov dword [0x410da0], eax
call fcn.004059b0
cmp dword [0x40b120], 0
jne 0x40167e
mov esi, esp
push 0x20
push 0x410dc0
mov ecx, dword [0x4124fc]
push ecx
call dword [sym.imp.WINMM.dll_waveOutWrite]
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov byte [0x40b118], 0
mov esi, esp
lea edx, [ebp - 0x30]
push edx
push 0
push 0
push 0x405bd0
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov dword [0x40b11c], eax
mov esi, esp
push 0xf
mov eax, dword [0x40b11c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
cmp esi, esp
call sub.VCRUNTIME140.dll__chkesp
mov al, 1
pop edi
pop esi
pop ebx
add esp, 0x78
cmp ebp, esp
call sub.VCRUNTIME140.dll__chkesp
mov esp, ebp
pop ebp
ret