Function at 0x4346f0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x480176
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x4ac084]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x14], ebx
mov edi, dword [ebp + 8]
mov dword [edi], 0
cmp dword [ebx + 0x24], 0
jne 0x434745
mov eax, 0x2710
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x20]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test eax, eax
js 0x4348e6
cmp eax, 0x2710
jne 0x4347f0
cmp dword [0x4b0490], 0
je 0x434782
mov dword [0x4b0484], 1
mov dword [0x4b0488], 1
mov eax, dword [ebx + 0x20]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x60]
add eax, dword [ecx + 0x5c]
add dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x20]
mov esi, dword [eax]
mov dword [ebp + 8], esi
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [ecx], eax
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
dec dword [ebx + 0x24]
mov dword [ebp - 4], 0
mov esi, dword [esi + 0xc]
test esi, esi
je 0x4347dc
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x4347dc
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x4347dc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push dword [ebp + 8]
mov dword [ebp - 4], 0xffffffff
call fcn.00458d3c
add esp, 4
jmp 0x434828
mov eax, dword [ebx + 0x20]
mov eax, dword [eax]
mov esi, dword [eax + 8]
cmp dword [esi + 0x50], 0x2710
jne 0x434828
cmp dword [esi + 0x20], 0
jne 0x434828
mov eax, dword [ebx]
push 0
push 0
push esi
push 0x441100
push 0
push 0
mov dword [esi + 4], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0xc]
mov dword [edi], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x20]
mov dword [ebp + 8], eax
movd xmm1, eax
mov esi, dword [edi]
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x49ce00]
movsd qword [ebp - 0x1c], xmm1
cmp esi, edi
je 0x4348b0
nop dword [eax]
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test eax, eax
js 0x4348e6
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov ebx, dword [ecx + 0x60]
add ebx, dword [ecx + 0x5c]
call dword [eax + 0x3c]
movsd xmm1, qword [ebp - 0x1c]
imul eax, ebx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x49cec0]
mov eax, dword [esi + 8]
mov esi, dword [esi]
mov ecx, dword [eax + 0x60]
addsd xmm0, xmm1
add ecx, dword [eax + 0x5c]
mov eax, dword [ebp + 8]
add eax, ecx
mov dword [ebp + 8], eax
movsd qword [ebp - 0x1c], xmm0
movaps xmm1, xmm0
cmp esi, edi
jne 0x434850
mov ebx, dword [ebp - 0x14]
test eax, eax
jne 0x4348cd
mov eax, 0xfffffffa
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movd xmm0, eax
lea ecx, [ebx + 0x10]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
push eax
call fcn.0042f940
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4