Function at 0x100d55c4
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [0x101be704]
sub esp, 0x74
cmp byte [eax + 2], 0
push ebx
push esi
push edi
je 0x100d560a
mov eax, dword [0x101be6c0]
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
call dword [eax + 0x30]
push eax
mov ecx, edi
call esi
movss xmm0, dword [0x101afe04]
lea ecx, [esp + 0x54]
mov edi, eax
movss dword [esp + 0x1c], xmm0
push 0
mov dword [esp + 0x1c], edi
call fcn.100134c0
mov eax, dword [0x101be6c0]
xorps xmm1, xmm1
mov ebx, 1
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x10], xmm1
movss dword [esp + 0xc], xmm1
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov eax, dword [ecx]
mov dword [esp + 0x24], ebx
call dword [eax + 0x54]
cmp eax, ebx
jl 0x100d560a
nop
mov eax, dword [0x101be6bc]
mov eax, dword [eax + 4]
movss xmm0, dword [eax + 0x40]
mov ecx, dword [eax + 0x34]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [eax + 0x44]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [eax + 0x48]
movss dword [esp + 0x2c], xmm0
test ecx, ecx
je 0x100d51c3
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x24]
call eax
test eax, eax
jne 0x100d54e9
mov eax, dword [0x101be6c0]
push ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, eax
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x100d52af
mov ecx, dword [ebx + 8]
mov edx, dword [ecx + 0x20]
lea ecx, [ebx + 8]
call edx
test al, al
jne 0x100d52af
cmp ebx, edi
je 0x100d52af
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x1d8]
call eax
test al, al
je 0x100d52af
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x1d4]
call eax
test al, al
je 0x100d52af
mov eax, dword [edi]
mov ecx, edi
push ebx
mov eax, dword [eax + 0x114]
call eax
test al, al
jne 0x100d52af
mov eax, dword [0x101be6c0]
lea ecx, [ebx + 8]
mov edi, dword [eax + 0x1c]
mov eax, dword [edi]
mov esi, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
push 0x101c6e50
push eax
mov ecx, edi
call esi
or esi, 0xffffffff
test al, al
mov eax, dword [0x101be6bc]
cmovne esi, dword [0x101c6e70]
mov dword [esp + 0x28], esi
mov edi, dword [eax + 0x24]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [edi + 0x18]
call fcn.1003cb10
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0xd], 0
jne 0x100d5372
cmp esi, dword [ecx + 0x10]
jl 0x100d5372
lea eax, [ecx + 0x3c]
cmp ecx, dword [edi + 0x18]
je 0x100d5378
mov al, byte [eax]
test al, al
je 0x100d537b
mov edi, dword [esp + 0x18]
mov eax, dword [0x101be6c0]
mov ebx, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x24], ebx
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp ebx, eax
jle 0x100d5180
movss xmm0, dword [0x101afe04]
comiss xmm0, dword [esp + 0x1c]
jbe 0x100d55d5
mov ecx, edi
call fcn.10030470
mov ecx, edi
mov esi, eax
call fcn.10019b80
movss xmm0, dword [esi]
movss xmm1, dword [esi + 4]
movss xmm3, dword [esp + 0xc]
addss xmm0, dword [eax]
addss xmm1, dword [eax + 4]
movss xmm4, dword [esp + 0x10]
movss xmm2, dword [esi + 8]
addss xmm2, dword [eax + 8]
movss xmm5, dword [esp + 0x14]
subss xmm3, xmm0
subss xmm4, xmm1
subss xmm5, xmm2
movaps xmm1, xmm3
movss dword [esp + 0xc], xmm3
movaps xmm0, xmm4
mulss xmm1, xmm3
mulss xmm0, xmm4
movss dword [esp + 0x10], xmm4
movss dword [esp + 0x14], xmm5
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm5
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100d5512
sqrtsd xmm0, xmm0
jmp 0x100d5517
mov eax, dword [edi + 0x18]
add eax, 0x3c
mov byte [eax], 0
lea eax, [esp + 0x54]
mov ecx, ebx
push eax
call fcn.1014c360
test al, al
je 0x100d52ab
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
call fcn.10014e30
push dword [esp + 0x20]
mov eax, dword [0x101be6bc]
lea ecx, [esp + 0x60]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.100d32a0
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.10030470
mov ecx, edi
mov esi, eax
call fcn.10019b80
movss xmm0, dword [esi]
movss xmm1, dword [esi + 4]
movss xmm2, dword [esi + 8]
addss xmm0, dword [eax]
addss xmm1, dword [eax + 4]
movss xmm3, dword [esp + 0x5c]
movss xmm4, dword [esp + 0x60]
addss xmm2, dword [eax + 8]
subss xmm3, xmm0
movss xmm0, dword [esp + 0x64]
subss xmm4, xmm1
xorps xmm1, xmm1
subss xmm0, xmm2
mulss xmm3, xmm3
mulss xmm4, xmm4
mulss xmm0, xmm0
addss xmm4, xmm3
addss xmm4, xmm0
cvtps2pd xmm0, xmm4
ucomisd xmm1, xmm0
ja 0x100d5429
sqrtsd xmm0, xmm0
jmp 0x100d542e
call fcn.101610b0
movss xmm1, dword [esp + 0x1c]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x100d52af
mov ecx, edi
call fcn.10030470
mov ecx, edi
mov esi, eax
call fcn.10019b80
movss xmm0, dword [esi]
movss xmm1, dword [esi + 4]
movss xmm2, dword [esi + 8]
addss xmm0, dword [eax]
addss xmm1, dword [eax + 4]
movss xmm3, dword [esp + 0x5c]
movss xmm4, dword [esp + 0x60]
addss xmm2, dword [eax + 8]
subss xmm3, xmm0
movss xmm0, dword [esp + 0x64]
subss xmm4, xmm1
xorps xmm1, xmm1
subss xmm0, xmm2
mulss xmm3, xmm3
mulss xmm4, xmm4
mulss xmm0, xmm0
addss xmm4, xmm3
addss xmm4, xmm0
cvtps2pd xmm0, xmm4
ucomisd xmm1, xmm0
ja 0x100d54b1
sqrtsd xmm0, xmm0
jmp 0x100d54b6
call fcn.101610b0
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x60]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x64]
movss dword [esp + 0x14], xmm0
jmp 0x100d52af
movss xmm1, dword [esp + 0x28]
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x20]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [esp + 0x2c]
movss dword [esp + 0x14], xmm1
jmp 0x100d52e0
call fcn.101610b0
cvtsd2ss xmm0, xmm0
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100d5559
movss xmm1, dword [esp + 0xc]
divss xmm1, xmm0
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esp + 0x10]
divss xmm1, xmm0
movss dword [esp + 0x34], xmm1
movss xmm1, dword [esp + 0x14]
divss xmm1, xmm0
movss dword [esp + 0x38], xmm1
jmp 0x100d5571
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x3f800000
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x34]
call fcn.1014e0c0
mov ecx, dword [0x101bf848]
movss xmm0, dword [eax + 4]
mov eax, dword fs:[0x2c]
movss dword [esp + 0x2c], xmm0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x101c6e1c]
cmp eax, dword [ecx + 4]
jg 0x100d5611
mov eax, dword [0x101be6c0]
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
call dword [eax + 0x30]
push eax
mov ecx, edi
call esi
movss xmm0, dword [esp + 0x2c]
neg eax
sbb eax, eax
and eax, dword [0x101c6e14]
movss dword [eax + 0x10], xmm0
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x100d560a
mov ecx, dword [esp + 0x44]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100d5600
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d5647
push ecx
push edx
call fcn.1007739f
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x101c6e1c
call fcn.100774e5
add esp, 4
cmp dword [0x101c6e1c], 0xffffffff
jne 0x100d55a6
push 0x101c6e1c
mov dword [0x101c6e14], 0
call fcn.1007749b
add esp, 4
jmp 0x100d55a6
call fcn.10084c47
int3