Function at 0x419800
Capabilities:
Create thread

Disassembly:
sub esp, 0x40
mov eax, dword [0x437888]
xor eax, esp
mov dword [esp + 0x3c], eax
mov eax, dword [0x43b668]
push ebx
push ebp
push esi
cmp dword [eax + 0xb4], 0x1e
push edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edi
je 0x41985b
mov eax, dword [0x43b668]
cmp dword [eax + 0xb4], 0x32
je 0x41985b
mov eax, dword [0x43b668]
cmp dword [eax + 0xb4], 0x3c
je 0x41985b
mov eax, dword [0x43b668]
mov dword [eax + 0xb4], 0x14
cmp dword [0x43aca0], 0
je 0x4198f1
mov eax, dword [0x43b668]
cmp dword [eax + 0xb4], 0x14
jne 0x4198f1
mov ecx, dword [0x43aca0]
cmp ecx, 0x7512
jne 0x41989d
mov dword [0x43b648], ecx
mov ecx, dword [esp + 0x1c]
mov dword [0x43b650], 0x41efc29f
jmp 0x419930
cmp ecx, 0xea24
jne 0x4198bb
mov dword [0x43b648], ecx
mov ecx, dword [esp + 0x1c]
mov dword [0x43b650], 0x426fc29f
jmp 0x419930
movd xmm0, ecx
mov eax, ecx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [0x43b648], ecx
mov ecx, dword [esp + 0x1c]
addsd xmm0, qword [eax*8 + 0x435000]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x434fe8]
movss dword [0x43b650], xmm0
jmp 0x419930
mov eax, dword [0x43b668]
mov eax, dword [eax + 0xb4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x435000]
mov eax, dword [0x43b668]
imul eax, dword [eax + 0xb4], 0x3e8
cvtpd2ps xmm0, xmm0
mov dword [0x43b648], eax
movss dword [0x43b650], xmm0
mov eax, dword [0x43b668]
mov dword [0x43b6a4], 0
mov eax, dword [eax + 0x24]
mov dword [esp + 0x20], eax
cmp eax, 7
jne 0x419962
mov esi, ecx
mov dword [0x43b6c8], 0x201
imul esi, edx
lea eax, [esi + 0x400]
jmp 0x4199b9
cmp eax, 0x10
jne 0x41997b
mov esi, ecx
mov dword [0x43b6c8], 0x305
imul esi, edx
lea eax, [esi + esi*2]
jmp 0x4199b9
cmp eax, 4
je 0x4199a5
cmp eax, 5
je 0x4199a5
cmp eax, 6
je 0x4199a5
cmp eax, 8
je 0x4199a5
mov dword [0x43b6c8], 4
mov dword [0x43b6a4], 1
jmp 0x4199af
mov dword [0x43b6c8], 0x20000000
mov esi, ecx
imul esi, edx
lea eax, [esi + esi*2]
shr eax, 1
mov dword [0x43b6b8], eax
mov ecx, 0x400000
lea eax, [eax*2 + 0x2000]
cmp eax, ecx
push 4
cmovb eax, ecx
push 0x1000
lea ebx, [eax + 0xffff]
and ebx, 0xffff0000
lea eax, [ebx*8 + 0x40000]
push eax
push 0
call dword [sym.imp.kernel32.dll_VirtualAlloc]
cmp dword [0x43b6bc], 0
mov ebp, eax
jne 0x419a17
lea eax, [ebx*8 + 0x40000]
shr eax, 2
test eax, eax
je 0x419a17
mov ecx, eax
mov edi, ebp
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
lea eax, [ebp + 0x3320f]
and eax, 0xffff0000
mov dword [ebp + 0x20310], eax
add eax, ebx
mov dword [ebp + 0x20314], eax
add eax, ebx
mov dword [ebp + 0x20318], eax
add eax, ebx
mov dword [ebp + 0x2031c], eax
add eax, ebx
mov dword [ebp + 0x20320], eax
add eax, ebx
mov dword [ebp + 0x20324], eax
add eax, ebx
mov dword [ebp + 0x20328], eax
add eax, ebx
mov dword [ebp + 0x2032c], eax
mov dword [ebp + 0x20018], ebx
mov dword [ebp + 0x20000], 0xffffffff
mov dword [ebp + 0x20004], 0
mov dword [ebp + 0x2003c], 0
mov dword [ebp + 0x200b0], 0
mov dword [ebp + 0x200b4], 0
mov dword [ebp + 0x20008], 0
push 0
push 0
mov dword [ebp + 0x202d0], 0
mov dword [ebp + 0x202f0], 0
mov dword [ebp + 0x202d4], 0
mov dword [ebp + 0x202f4], 0
mov dword [ebp + 0x202d8], 0
mov dword [ebp + 0x202f8], 0
mov dword [ebp + 0x202dc], 0
mov dword [ebp + 0x202fc], 0
mov dword [ebp + 0x202e0], 0
mov dword [ebp + 0x20300], 0
mov dword [ebp + 0x202e4], 0
mov dword [ebp + 0x20304], 0
mov dword [ebp + 0x202e8], 0
mov dword [ebp + 0x20308], 0
mov dword [ebp + 0x202ec], 0
mov dword [ebp + 0x2030c], 0
push 0
push 0
mov dword [ebp + 0x20074], 0
mov dword [ebp + 0x2000c], 0
mov dword [ebp + 0x20014], 0
mov dword [ebp + 0x20010], 0
call dword [sym.imp.kernel32.dll_CreateEventA]
cmp dword [esp + 0x20], 7
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [ebp + 0x20048], eax
mov dword [0x43b6d0], ebx
mov dword [0x43b6b4], ecx
jne 0x419ba5
mov dword [0x43b698], 0
jmp 0x419bd1
mov eax, dword [0x43b6ac]
imul eax, dword [0x43b6c4]
cmp esi, eax
jbe 0x419bc1
mov dword [0x43b698], 1
jmp 0x419bd1
mov eax, dword [0x43b668]
mov eax, dword [eax + 0xb8]
mov dword [0x43b698], eax
cmp dword [0x43b6bc], 0
jne 0x419c01
mov eax, dword [0x43b640]
mov esi, dword [0x43b958]
add eax, 0x3e8
mov dword [esp + 0x18], esi
cmp esi, eax
jae 0x419c09
mov dword [0x43b670], 0
jmp 0x41a56c
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
and ecx, 0xfffffffe
and ebx, 0xfffffff8
push 0x43b654
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ecx
call dword [sym.imp.kernel32.dll_GetLocalTime]
mov eax, dword [0x43b668]
push eax
push 4
call dword [0x43a908]
lea ecx, [esp + 0x28]
call fcn.0041ccc0
cmp dword [edi + 4], 0
jne 0x419c4d
mov esi, dword [sym.imp.kernel32.dll_SwitchToThread]
call esi
cmp dword [edi + 4], 0
je 0x419c45
movzx ecx, word [0x43b662]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
movzx eax, word [0x43b660]
push eax
movzx eax, word [0x43b65e]
push eax
movzx eax, word [0x43b65c]
push eax
movzx eax, word [0x43b65a]
push eax
movzx eax, word [0x43b656]
push eax
movzx eax, word [0x43b654]
push eax
lea eax, [esp + 0x44]
push eax
push 0x43a920
push 0x434930
lea eax, [ebp + 0x200d0]
push 0xff
push eax
call fcn.0041d632
lea eax, [edi + 0x28]
push eax
lea eax, [ebp + 0x201d0]
push 0xff
push eax
call fcn.0041d64e
add esp, 0x3c
mov byte [ebp + 0x202cf], 0
cmp dword [edi + 8], 0
je 0x419cf4
mov dword [ebp + 0x20000], 0xffffffff
mov dword [0x43b670], 0
jmp 0x41a56c
cmp dword [0x43b6c0], 0
mov eax, dword [edi + 0x14]
mov dword [ebp + 0x20000], eax
mov eax, dword [edi + 0x18]
mov dword [ebp + 0x20090], eax
mov eax, dword [edi + 0x1c]
mov dword [ebp + 0x20094], eax
mov eax, dword [edi + 0x20]
mov dword [ebp + 0x200a0], eax
mov eax, dword [edi + 0x24]
mov dword [ebp + 0x200a4], eax
mov eax, dword [ebp + 0x200a0]
mov ecx, dword [ebp + 0x200a4]
mov dword [ebp + 0x20098], eax
mov dword [ebp + 0x2009c], ecx
jne 0x419d61
test ecx, ecx
ja 0x419d4d
cmp eax, 0x7d000000
jbe 0x419d61
mov dword [ebp + 0x20098], 0x7d000000
mov dword [ebp + 0x2009c], 0
mov eax, dword [esp + 0x14]
imul eax, ebx
mov dword [ebp + 0x200ac], 0
push dword [ebp + 0x200ac]
lea eax, [eax + eax*2]
push eax
push 0
push dword [0x43b648]
mov dword [esp + 0x34], eax
call fcn.0042b6b0
cmp dword [esp + 0x20], 0x10
mov ecx, edx
mov dword [ebp + 0x200a8], eax
mov dword [ebp + 0x200ac], edx
jne 0x419daa
shrd eax, ecx, 1
shr ecx, 1
jmp 0x419db1
shrd eax, ecx, 2
shr ecx, 2
push 0
push 0x3e8
push ecx
push eax
mov dword [ebp + 0x200ac], ecx
mov dword [ebp + 0x200a8], eax
call fcn.0042d950
cmp dword [0x43a5b8], 0
mov dword [ebp + 0x200a8], eax
mov dword [ebp + 0x200ac], edx
je 0x419df1
add dword [ebp + 0x200a8], 0x2ee000
adc dword [ebp + 0x200ac], 0
push dword [ebp + 0x200ac]
mov eax, dword [0x43b300]
push dword [ebp + 0x200a8]
inc eax
push 0
push eax
call fcn.0042b6b0
mov dword [ebp + 0x200ac], edx
mov edx, eax
mov esi, dword [ebp + 0x200ac]
mov ecx, esi
shld ecx, eax, 2
shl eax, 2
add edx, eax
mov eax, edx
adc esi, ecx
mov ecx, esi
shrd eax, ecx, 2
shr ecx, 2
mov dword [ebp + 0x200a8], eax
mov dword [ebp + 0x200ac], ecx
test ecx, ecx
ja 0x419e5e
jb 0x419e4a
cmp eax, 0x2000000
jae 0x419e5e
mov dword [ebp + 0x200a8], 0x2000000
mov dword [ebp + 0x200ac], 0
mov eax, dword [ebp + 0x200a0]
mov ecx, dword [ebp + 0x200a4]
add eax, 0xfe000000
adc ecx, 0xffffffff
cmp dword [ebp + 0x200ac], ecx
jb 0x419e90
ja 0x419e84
cmp dword [ebp + 0x200a8], eax
jbe 0x419e90
mov dword [ebp + 0x200a8], eax
mov dword [ebp + 0x200ac], ecx
cmp dword [0x43b6c0], 0
mov dword [ebp + 0x212d0], 0
mov dword [ebp + 0x212d4], 0
mov dword [ebp + 0x20330], 0
mov dword [ebp + 0x2005c], 1
mov dword [ebp + 0x20060], 0
mov dword [edi + 4], 0
je 0x419edb
push dword [edi + 0xc]
call dword [sym.imp.kernel32.dll_SetEvent]
mov eax, dword [ebp + 0x20018]
mov ebx, dword [ebp + 0x20310]
add eax, 0x8000
mov esi, dword [0x43b648]
mov ecx, eax
mov dword [ebp + 0x200c0], eax
add ecx, 4
mov dword [ebp + 0x200c4], 0
mov edi, ebx
mov eax, dword [ebp + 0x200c4]
adc eax, 0
mov dword [ebp + 0x200c8], ecx
mov dword [ebp + 0x200cc], eax
mov ecx, 0x2000
mov eax, dword [0x43b300]
inc eax
mov dword [ebp + 0x202d0], 0x8000
imul eax, eax, 0x3e8
mov dword [ebp + 0x20088], 0x8000
mov dword [ebp + 0x2008c], 0
mov dword [ebp + 0x20024], 0
mov dword [ebp + 0x20078], 0
mov dword [0x43b69c], eax
xor eax, eax
mov dword [ebp + 0x2007c], 0
mov dword [ebp + 0x2001c], 0
mov dword [ebp + 0x20020], 0
mov dword [ebp + 0x20008], 0
rep stosd dword es:[edi], eax
mov dword [ebp + 0x20040], eax
cmp dword [0x43b6bc], eax
jne 0x41a03c
cmp dword [0x43a5b8], eax
je 0x41a002
cmp dword [0x43a5b0], eax
je 0x419fc9
call fcn.0042cec0
test eax, eax
je 0x41a002
mov dword [0x43a5bc], 1
jmp 0x41a00b
cmp dword [0x43a6cc], eax
jne 0x419ffd
call dword [sym.imp.winmm.dll_waveOutGetNumDevs]
mov esi, eax
call dword [sym.imp.winmm.dll_waveInGetNumDevs]
add esi, eax
je 0x419ffd
cmp dword [0x43a5bc], 0
jne 0x419ffd
push 0
mov edx, 1
mov ecx, 0x43ab70
call fcn.004174a0
call fcn.00409f50
cmp dword [0x43a5bc], 0
je 0x41a015
mov dword [0x43a5b8], 0
call dword [sym.imp.winmm.dll_timeGetTime]
mov esi, dword [0x43b648]
mov dword [0x43b958], eax
mov dword [0x43b6cc], eax
mov dword [0x43b644], eax
mov dword [0x43b6a8], 0
jmp 0x41a041
mov dword [0x43b6bc], eax
cmp dword [0x43a5b8], 0
mov eax, dword [esp + 0x18]
mov dword [ebx], 0x46464952
mov dword [ebx + 8], 0x20495641
mov dword [ebx + 0xc], 0x5453494c
mov dword [0x43b664], eax
je 0x41a081
mov eax, 2
cmp eax, dword [0x43a7d8]
sbb eax, eax
and eax, 0x18
add eax, 0x7f70
mov dword [ebx + 0x10], eax
jmp 0x41a088
mov dword [ebx + 0x10], 0x406c
xor edx, edx
mov dword [ebx + 0x14], 0x6c726468
mov eax, 0x3b9aca00
mov dword [ebx + 0x18], 0x68697661
div esi
shr esi, 1
mov dword [ebx + 0x1c], 0x38
mov dword [ebx + 0x20], eax
cmp edx, esi
jb 0x41a0b3
inc eax
mov dword [ebx + 0x20], eax
mov eax, dword [0x43b668]
movss xmm1, dword [0x43b650]
movss dword [eax + 0x15c], xmm1
mov eax, dword [0x43b6b8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x435000]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
call fcn.0042d9c0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x24], eax
xor eax, eax
cmp dword [0x43a5b8], eax
mov dword [ebx + 0x2c], 0x110
setne al
mov dword [ebx + 0x30], 1
inc eax
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x44], edx
mov dword [ebx + 0x58], 0x5453494c
mov dword [ebx + 0x5c], 0x3f14
mov dword [ebx + 0x60], 0x6c727473
mov dword [ebx + 0x64], 0x68727473
mov dword [ebx + 0x68], 0x38
mov dword [ebx + 0x6c], 0x73646976
cmp dword [0x43aca0], 0
je 0x41a1ad
mov eax, dword [0x43b668]
cmp dword [eax + 0xb4], 0x14
jne 0x41a1ad
mov eax, dword [0x43aca0]
cmp eax, 0x7512
jne 0x41a17f
mov dword [ebx + 0x80], 0x3e9
mov dword [ebx + 0x84], 0x7530
jmp 0x41a1c8
cmp eax, 0xea24
jne 0x41a19c
mov dword [ebx + 0x80], 0x3e9
mov dword [ebx + 0x84], 0xea60
jmp 0x41a1c8
mov dword [ebx + 0x80], 0x3e8
mov eax, dword [0x43aca0]
jmp 0x41a1c2
mov eax, dword [0x43b668]
mov dword [ebx + 0x80], 1
mov eax, dword [eax + 0xb4]
mov dword [ebx + 0x84], eax
mov eax, edx
mov dword [ebx + 0x8c], 1
shl eax, 0x10
or eax, ecx
mov dword [ebx + 0xa4], 0x66727473
mov dword [ebx + 0xa0], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0xc0], eax
mov eax, dword [0x43b6b8]
add eax, 8
mov dword [ebx + 0xa8], 0x28
cmp dword [0x43a5b8], 0
mov dword [ebx + 0xac], 0x28
mov dword [ebx + 0xb0], ecx
mov dword [ebx + 0xb4], edx
mov dword [ebx + 0xb8], 0x180001
mov dword [ebx + 0xbc], 0x31535046
mov dword [ebx + 0x90], eax
mov dword [ebp + 0x20058], 0
mov dword [ebp + 0x20054], 0xd4
mov dword [ebx + 0xd4], 0x78646e69
mov dword [ebx + 0xd8], 0x3e98
mov dword [ebx + 0xdc], 4
mov dword [ebx + 0xe4], 0x63643030
jne 0x41a284
mov edx, 0x3f74
jmp 0x41a4c5
mov edi, dword [0x43a7d8]
mov dword [ebx + 0x3f74], 0x5453494c
mov dword [ebx + 0x3f7c], 0x6c727473
mov dword [ebx + 0x3f80], 0x68727473
mov dword [ebx + 0x3f84], 0x38
mov dword [ebx + 0x3f88], 0x73647561
mov dword [ebx + 0x3fc0], 0x66727473
cmp edi, 2
ja 0x41a375
mov esi, dword [0x43a5c0]
mov ecx, esi
mov eax, dword [0x43a5c4]
shr ecx, 3
mov edx, ecx
shl esi, 0x10
imul edx, edi
imul ecx, eax
mov dword [ebx + 0x3f78], 0x3efc
mov dword [ebx + 0x3fc4], 0x10
mov dword [ebx + 0x3fcc], eax
mov dword [ebx + 0x3f9c], edx
imul ecx, edi
shl edi, 0x10
or edi, 1
mov dword [ebx + 0x3fb4], edx
or esi, edx
mov dword [ebx + 0x3fc8], edi
mov dword [ebx + 0x3fd4], esi
mov edx, 0x7e78
mov dword [ebx + 0x3fa0], ecx
mov dword [ebx + 0x3fac], ecx
mov dword [ebx + 0x3fd0], ecx
mov dword [ebp + 0x20058], 0x3fd8
mov dword [ebx + 0x3fd8], 0x78646e69
mov dword [ebx + 0x3fdc], 0x3e98
mov dword [ebx + 0x3fe0], 4
mov dword [ebx + 0x3fe8], 0x62773130
jmp 0x41a4c5
mov edi, dword [0x43a5c0]
mov edx, edi
mov ecx, dword [0x43a5c4]
mov eax, dword [0x43a7d8]
shr edx, 3
mov esi, edx
shl edi, 0x10
imul esi, eax
imul edx, ecx
mov dword [ebx + 0x3f78], 0x3f14
mov dword [ebx + 0x3fc4], 0x28
mov dword [ebx + 0x3fcc], ecx
mov dword [ebx + 0x3f9c], esi
imul edx, eax
shl eax, 0x10
or eax, 0xfffe
mov dword [ebx + 0x3fb4], esi
or esi, edi
mov dword [ebx + 0x3fc8], eax
mov eax, dword [0x43a7d8]
or edi, 0x16
mov dword [ebx + 0x3fa0], edx
mov dword [ebx + 0x3fac], edx
mov dword [ebx + 0x3fd0], edx
mov dword [ebx + 0x3fd4], esi
mov dword [ebx + 0x3fd8], edi
cmp eax, 1
jne 0x41a402
mov dword [ebx + 0x3fdc], eax
jmp 0x41a466
cmp eax, 3
jne 0x41a413
mov dword [ebx + 0x3fdc], 7
jmp 0x41a466
cmp eax, 4
jne 0x41a424
mov dword [ebx + 0x3fdc], 0xf
jmp 0x41a466
cmp eax, 5
jne 0x41a435
mov dword [ebx + 0x3fdc], 0x1f
jmp 0x41a466
cmp eax, 6
jne 0x41a446
mov dword [ebx + 0x3fdc], 0x3f
jmp 0x41a466
cmp eax, 7
jne 0x41a457
mov dword [ebx + 0x3fdc], 0x7f
jmp 0x41a466
cmp eax, 8
jne 0x41a466
mov dword [ebx + 0x3fdc], 0xff
mov dword [ebx + 0x3fe0], 1
mov edx, 0x7e90
mov dword [ebx + 0x3fe4], 0x100000
mov dword [ebx + 0x3fe8], 0xaa000080
mov dword [ebx + 0x3fec], 0x719b3800
mov dword [ebp + 0x20058], 0x3ff0
mov dword [ebx + 0x3ff0], 0x78646e69
mov dword [ebx + 0x3ff4], 0x3e98
mov dword [ebx + 0x3ff8], 4
mov dword [ebx + 0x4000], 0x62773130
mov dword [ebp + 0x20050], edx
mov eax, edx
shr eax, 2
add edx, 0x10c
push 0
push 0
mov ecx, edx
mov dword [ebx + eax*4], 0x5453494c
mov dword [ebx + eax*4 + 4], 0x104
mov dword [ebx + eax*4 + 8], 0x6c6d646f
mov dword [ebx + eax*4 + 0xc], 0x686c6d64
mov dword [ebx + eax*4 + 0x10], pe_nt_image_headers32
mov eax, 0x7fec
shr ecx, 2
sub eax, edx
push ebp
push 0x418cf0
push 0x100000
mov dword [ebx + ecx*4], 0x4b4e554a
mov dword [ebx + ecx*4 + 4], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x7ff4], 0x5453494c
mov dword [ebx + 0x7ffc], 0x69766f6d
push 0
mov dword [ebp + 0x200b0], 0
mov dword [ebp + 0x200b4], 0
mov dword [0x43b6b0], eax
mov dword [ebp + 0x2004c], 1
call dword [sym.imp.kernel32.dll_CreateThread]
mov dword [ebp + 0x20044], eax
mov ecx, dword [esp + 0x4c]
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041d486
add esp, 0x40
ret 4