Function at 0x43fec0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x441b40
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov ebx, dword [ecx]
mov edi, dword [ecx + 4]
sub edi, ebx
sar edi, 3
add edi, 1
mov eax, dword [ecx + 8]
sub eax, ebx
sar eax, 3
mov esi, eax
shr esi, 1
mov edx, 0x1fffffff
sub edx, esi
add esi, eax
cmp esi, edi
cmovb esi, edi
cmp eax, edx
mov eax, 0x1fffffff
cmova esi, eax
cmp esi, 0x20000000
jae 0x440155
lea eax, [esi*8]
cmp esi, 0x200
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x40], edi
jb 0x43ff65
cmp esi, 0x1ffffffc
jae 0x440155
add eax, 0x23
push eax
call fcn.004a880e
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x43ff78
test esi, esi
je 0x43ff76
push eax
call fcn.004a880e
add esp, 4
mov ecx, eax
jmp 0x43ff78
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3c], ebx
sub eax, ebx
mov dword [ebp - 0x38], eax
sar eax, 3
mov dword [ebp - 0x30], eax
lea eax, [ecx + eax*8]
add eax, 8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 0
push 0xc
call fcn.004a880e
add esp, 4
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
movsd xmm0, qword [edx]
movsd qword [eax], xmm0
mov edi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
lea esi, [edi + ebx*8 + 4]
push esi
push 0
push eax
push 0x4401e0
push 0
push 0
mov dword [ebp - 0x34], eax
call fcn.004c9a5c
add esp, 0x18
mov dword [edi + ebx*8], eax
test eax, eax
je 0x44015a
mov ebx, edi
mov edi, dword [ebp - 0x24]
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov esi, dword [ebp + 8]
cmp eax, esi
je 0x44009d
cmp ecx, esi
je 0x440029
xor eax, eax
nop
movsd xmm0, qword [ecx + eax]
mov dword [ecx + eax], 0
mov dword [ecx + eax + 4], 0
movsd qword [ebx + eax], xmm0
lea edx, [ecx + eax]
add edx, 8
add eax, 8
cmp edx, esi
jne 0x440000
mov eax, dword [edi + 4]
cmp eax, esi
je 0x4400d6
mov edx, dword [ebp - 0x38]
test edx, edx
mov ecx, 0xffffffff
cmovns ecx, edx
test ecx, ecx
mov dword [ebp - 0x20], 1
mov edi, dword [ebp - 0x20]
cmovle edi, ecx
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
sub ecx, esi
cmp ecx, edx
cmovle ecx, edx
shr ecx, 3
imul ecx, dword [ebp - 0x20]
lea ecx, [ebx + ecx*8]
add ecx, 8
xor edx, edx
nop dword [eax]
movsd xmm0, qword [esi + edx]
mov dword [esi + edx], 0
mov dword [esi + edx + 4], 0
movsd qword [ecx + edx], xmm0
mov esi, dword [ebp + 8]
add esi, edx
add esi, 8
add edx, 8
cmp esi, eax
mov esi, dword [ebp + 8]
jne 0x440070
jmp 0x4400d6
cmp ecx, esi
je 0x4400d8
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movsd xmm0, qword [ecx + eax]
mov dword [ecx + eax], 0
mov dword [ecx + eax + 4], 0
movsd qword [ebx + eax], xmm0
lea edx, [ecx + eax]
add edx, 8
add eax, 8
cmp edx, esi
jne 0x4400b0
mov esi, dword [edi]
test esi, esi
mov ecx, esi
mov esi, dword [ebp - 0x30]
je 0x440125
mov eax, dword [edi + 4]
mov edx, ecx
cmp ecx, eax
je 0x4400fd
mov ecx, edx
nop dword [eax]
cmp dword [ecx + 4], 0
jne 0x440150
add ecx, 8
cmp eax, ecx
jne 0x4400f0
mov eax, dword [edi + 8]
sub eax, edx
cmp eax, 0x1000
jb 0x44011b
mov ecx, dword [edx - 4]
sub edx, ecx
add edx, 0xfffffffc
cmp edx, 0x20
jae 0x440171
add eax, 0x23
mov edx, ecx
push eax
push edx
call fcn.004a8843
add esp, 8
lea eax, [ebx + esi*8]
mov dword [edi], ebx
mov ecx, dword [ebp - 0x40]
lea ecx, [ebx + ecx*8]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x28]
lea ecx, [ebx + ecx*8]
mov dword [edi + 8], ecx
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret 8
call fcn.004d286b
call fcn.00407020
mov dword [esi], 0
mov dword [ebp - 0x10], 1
push 6
call fcn.004ac661
add esp, 4
call fcn.004cc578
nop word cs:[eax + eax]
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x34]
call fcn.004a883e
add esp, 0x1c
pop ebp
ret