Function at 0x100860c0
Capabilities:
Create thread
Read file on windows
Write file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101bcc05
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
mov eax, dword [0x10248f44]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x84], ecx
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x68], eax
xor eax, eax
mov byte [ebp - 0x7e], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x94], eax
cmp dword [esi + 0x10], eax
je 0x1008665f
cmp dword [esi + 0x14], 0x10
jb 0x1008614d
mov esi, dword [esi]
test esi, esi
je 0x1008665f
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10086160
sub ecx, edx
mov dword [ebp - 0x70], ecx
je 0x1008665f
call fcn.100c34f0
mov edi, eax
mov dword [ebp - 0x90], edi
test edi, edi
je 0x1008660b
push 0
call fcn.100c3620
push eax
push edi
call fcn.100c31a0
add esp, 0xc
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
push dword [ebp - 0x70]
push esi
push edi
call fcn.100c3350
add esp, 0xc
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
push eax
push edi
call fcn.100c2ff0
xorps xmm0, xmm0
mov byte [ebp - 0x30], 0
add esp, 0xc
lea edi, [ebp - 0x50]
movups xmmword [ebp - 0x50], xmm0
xor esi, esi
movups xmmword [ebp - 0x40], xmm0
movzx eax, byte [ebp + esi - 0x2c]
push eax
push str._02x
push edi
call fcn.10058f30
inc esi
add esp, 0xc
add edi, 2
cmp esi, 0x10
jl 0x100861d1
movups xmm0, xmmword [ebp - 0x40]
mov al, byte [0x102310cc]
movups xmm1, xmmword [str.g4el58wc0zvf9na1]
mov byte [ebp - 0x54], al
push dword [ebp - 0x90]
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x50]
pxor xmm1, xmm0
movups xmmword [ebp - 0xa8], xmm1
call fcn.100c34d0
mov esi, dword [ebp - 0x7c]
add esp, 4
cmp dword [esi + 0x10], 0
je 0x1008660b
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0x10], 0
je 0x1008660b
cmp dword [esi + 0x14], 0x10
mov edx, esi
mov dword [ebp - 0x70], 0
jb 0x1008624d
mov edx, dword [esi]
push 0x1022de54
lea ecx, [ebp - 0x70]
call fcn.10089750
add esp, 4
test eax, eax
jne 0x1008660b
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x10086275
push eax
call fcn.10193392
add esp, 4
cmp dword [esi + 0x10], 0
mov dword [ebp - 0x70], 0
je 0x1008660b
cmp dword [esi + 0x14], 0x10
mov edx, esi
jb 0x10086290
mov edx, dword [esi]
push 0x1022de54
lea ecx, [ebp - 0x70]
call fcn.10089750
mov eax, dword [ebp - 0x70]
add esp, 4
test eax, eax
je 0x1008660b
push 2
push 0
push eax
call fcn.101936ed
add esp, 0xc
push dword [ebp - 0x70]
call fcn.10192ff3
mov edi, eax
add esp, 4
xor eax, eax
test edi, edi
cmovs edi, eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x100862dc
push eax
call fcn.10193392
add esp, 4
test edi, edi
je 0x1008660b
xor eax, eax
xorps xmm0, xmm0
mov dword [ebp - 0x70], eax
movss dword [ebp - 0x90], xmm0
mov byte [ebp - 0x7d], al
cmp dword [ebx + 0x14], eax
ja 0x10086301
cmp dword [ebx + 0x18], eax
jbe 0x1008631a
lea eax, [edi + 0x7ff]
mov byte [ebp - 0x7d], 1
cdq
and edx, 0x7ff
add eax, edx
sar eax, 0xb
mov dword [ebp - 0x70], eax
mov edi, dword [ebp - 0x68]
mov ecx, edi
call fcn.10087ab0
cmp dword [esi + 0x14], 0x10
jb 0x1008632c
mov esi, dword [esi]
push 0x1022de54
mov edx, esi
lea ecx, [ebp - 0x74]
call fcn.10089750
add esp, 4
cmp dword [edi + 0x14], 0x10
jb 0x10086346
mov edi, dword [edi]
push 0x102310d0
mov edx, edi
lea ecx, [ebp - 0x78]
call fcn.10089750
mov eax, dword [ebp - 0x74]
add esp, 4
test eax, eax
je 0x10086622
cmp dword [ebp - 0x78], 0
je 0x1008660e
push 0x800
call fcn.1019ce70
add esp, 4
mov esi, eax
mov dword [ebp - 0x88], esi
push 0x800
call fcn.1019ce70
add esp, 4
mov dword [ebp - 0x8c], eax
test esi, esi
je 0x1008660b
test eax, eax
je 0x1008660b
push dword [ebp - 0x74]
xor edi, edi
call fcn.10193131
add esp, 4
test eax, eax
jne 0x100865fd
nop word [eax + eax]
mov eax, dword [ebp - 0x84]
cmp byte [eax + 0x50], 0
jne 0x10086607
push dword [ebp - 0x74]
push 0x800
push 1
push esi
call fcn.101973fd
mov esi, eax
mov ecx, edi
mov eax, 0x55555556
add esp, 0x10
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x100864b3
cmp esi, 0x800
jne 0x100864b3
movups xmm0, xmmword [ebp - 0xa8]
mov dword [ebp - 0x1c], 0x3020100
mov dword [ebp - 0x18], 0x7060504
movups xmmword [ebp - 0x64], xmm0
call fcn.100c2210
mov esi, eax
test esi, esi
je 0x100864a1
push esi
call fcn.100c2270
add esp, 4
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x64]
push eax
push 0
call fcn.100c38f0
push eax
push esi
call fcn.100c28d0
add esp, 0x14
push 0x10
push esi
call fcn.100c22e0
push 0
push esi
call fcn.100c2340
mov eax, dword [ebp - 0x88]
push 0x800
push eax
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x8c]
push esi
call fcn.100c28f0
add esp, 0x24
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x8c]
push eax
push esi
call fcn.100c2750
add esp, 0xc
push esi
call fcn.100c2190
add esp, 4
push dword [ebp - 0x78]
push 0x800
push 1
push dword [ebp - 0x8c]
jmp 0x100864c4
test esi, esi
jle 0x100864cc
push dword [ebp - 0x78]
mov eax, dword [ebp - 0x88]
push esi
push 1
push eax
call fcn.10196fc7
add esp, 0x10
mov eax, dword [ebp - 0x84]
inc edi
cmp byte [eax + 0x50], 0
jne 0x100865e3
cmp byte [ebp - 0x7d], 0
je 0x100865e3
mov eax, dword [ebp - 0x70]
xorps xmm1, xmm1
test eax, eax
jle 0x10086509
movd xmm1, edi
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movaps xmm0, xmm1
subss xmm0, dword [ebp - 0x90]
cmp edi, 1
je 0x10086526
comiss xmm0, dword [0x10231df0]
jb 0x100865e3
mov eax, dword [ebx + 0x18]
movss dword [ebp - 0x90], xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10231f10]
mov eax, dword [ebx + 0x14]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x10231f10]
cvtpd2ps xmm1, xmm1
addss xmm0, xmm1
call fcn.1018aea0
mov esi, eax
cmp esi, dword [ebp - 0x94]
jbe 0x100865e3
push 8
mov dword [ebp - 0x94], esi
call fcn.1018a730
mov ecx, dword [ebp - 0x84]
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [eax], ecx
mov dword [eax + 4], esi
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0
push ecx
push 0
push eax
push 0x100866a0
push 0
push 0
call fcn.1019d81f
add esp, 0x18
mov dword [ebp - 0x24], eax
test eax, eax
je 0x10086687
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 1
call fcn.10066520
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x20], 0
jne 0x10086682
push dword [ebp - 0x74]
call fcn.10193131
add esp, 4
test eax, eax
jne 0x100865fd
mov esi, dword [ebp - 0x88]
jmp 0x100863c0
mov eax, dword [ebp - 0x84]
cmp byte [eax + 0x50], 0
sete byte [ebp - 0x7e]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x10086622
push eax
call fcn.10193392
add esp, 4
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x10086639
push eax
call fcn.10193392
add esp, 4
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x1008664c
push eax
call fcn.1019be4e
add esp, 4
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x1008665f
push eax
call fcn.1019be4e
add esp, 4
mov al, byte [ebp - 0x7e]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1018a722
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
call fcn.1019d8b0
push 6
mov dword [ebp - 0x20], 0
call fcn.1018ce60
int3