Function at 0x1003f1d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, dword [0x10214570]
push esi
cmp byte [ebx + 0xb7], 0
je 0x1003f1f4
test byte [ebx + 0x14], 2
jne 0x1003f1f4
mov byte [ebx + 0xb7], 0
cmp byte [ebx + 0x2c44], 0
push edi
jne 0x1003f2ce
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x1003f2c7
push 0x10103a24
push eax
call fcn.1003a340
mov esi, eax
add esp, 8
test esi, esi
je 0x1003f2c7
push 2
push 0
push esi
call fcn.100dbf98
add esp, 0xc
test eax, eax
jne 0x1003f2be
push esi
call fcn.100dc6bc
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
je 0x1003f2be
push 0
push 0
push esi
call fcn.100dbf98
add esp, 0xc
test eax, eax
jne 0x1003f2be
push edi
call fcn.1003c240
add esp, 4
mov edi, eax
push esi
test edi, edi
je 0x1003f2bf
push dword [ebp - 4]
push 1
push edi
call fcn.100dbb3a
add esp, 0x10
push esi
cmp eax, dword [ebp - 4]
je 0x1003f2ab
call fcn.100db931
add esp, 4
mov eax, dword [0x10214570]
test eax, eax
je 0x1003f299
dec dword [eax + 0x374]
push dword [0x10214578]
push edi
call dword [0x10188494]
add esp, 8
jmp 0x1003f2c7
call fcn.100db931
push dword [ebp - 4]
push edi
call fcn.1003be80
add esp, 0xc
jmp 0x1003f28a
push esi
call fcn.100db931
add esp, 4
mov byte [ebx + 0x2c44], 1
movss xmm0, dword [ebx + 0x2c48]
xorps xmm2, xmm2
comiss xmm0, xmm2
jbe 0x1003f316
subss xmm0, dword [ebx + 0x20]
comiss xmm2, xmm0
movss dword [ebx + 0x2c48], xmm0
jb 0x1003f316
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x1003f305
push eax
call fcn.100418e0
add esp, 4
xorps xmm2, xmm2
jmp 0x1003f30c
mov byte [ebx + 0x35c], 1
mov dword [ebx + 0x2c48], 0
movss xmm0, dword [ebx + 0x20]
mov eax, dword [ebx + 0x9c]
inc dword [ebx + 0x1948]
cvtps2pd xmm0, xmm0
mov byte [ebx + 8], 1
mov dword [ebx + 0x2c20], 0
mov dword [ebx + 0x1990], 0
addsd xmm0, qword [ebx + 0x1940]
movsd qword [ebx + 0x1940], xmm0
mov byte [eax], 1
mov edx, dword [0x10214570]
mov esi, dword [edx + 0xa8]
test esi, esi
jne 0x1003f370
mov eax, dword [edx + 0x9c]
mov eax, dword [eax + 0x3c]
mov esi, dword [eax]
movss xmm0, dword [0x101016ac]
mov ecx, dword [edx + 0x1994]
mov dword [edx + 0x18b0], esi
movss xmm1, dword [esi + 0x10]
mulss xmm1, dword [edx + 0xa0]
mulss xmm1, dword [esi + 0x44]
maxss xmm0, xmm1
movss dword [edx + 0x18b8], xmm0
test ecx, ecx
je 0x1003f3bb
mov eax, dword [0x10214570]
movss xmm2, dword [eax + 0x18b8]
mulss xmm2, dword [ecx + 0x274]
movss dword [edx + 0x18b4], xmm2
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x30]
mov dword [edx + 0x18bc], ecx
lea ecx, [ebx + 0x1bf8]
mov dword [edx + 0x18c0], eax
mov dword [edx + 0x18c4], esi
movss dword [edx + 0x18c8], xmm2
movss xmm0, dword [ebx + 0x18]
movss xmm1, dword [ebx + 0x1c]
mov dword [ebx + 0x18d0], 0
mov dword [ebx + 0x18d4], 0
movss dword [ebx + 0x18d8], xmm0
movss dword [ebx + 0x18dc], xmm1
mov eax, dword [ebx + 0x15ac]
mov dword [ebx + 0x18cc], eax
call fcn.10047880
mov eax, dword [ebx + 0x9c]
lea ecx, [ebx + 0x1bf8]
push dword [eax + 8]
call fcn.1004a090
lea ecx, [ebx + 0x1bf8]
call fcn.10049fa0
xor ecx, ecx
mov byte [ebx + 0x1bb0], 0
cmp byte [ebx + 0x15a9], cl
mov eax, 2
mov dword [ebx + 0x1bb4], 0
cmovne ecx, eax
mov dword [ebx + 0x1bbc], 0
xor eax, eax
mov dword [ebx + 0x1bc0], 0
cmp byte [ebx + 0x15a8], al
mov dword [ebx + 0x1bb8], 0
setne al
or ecx, eax
mov dword [ebx + 0x1c1c], ecx
mov dword [ebx + 0x1bd4], 0
mov dword [ebx + 0x1bd8], 0
mov dword [ebx + 0x1bcc], 0
mov dword [ebx + 0x1bd0], 0
mov dword [ebx + 0x1bc4], 0
mov dword [ebx + 0x1bc8], 0
cmp byte [ebx + 0x1c70], 0
je 0x1003f512
mov eax, dword [ebx + 0x1c88]
cmp eax, dword [ebx + 0x19b4]
jne 0x1003f512
mov ecx, dword [0x10214570]
cmp dword [ecx + 0x19b4], eax
jne 0x1003f503
mov dword [ecx + 0x19bc], eax
cmp dword [ecx + 0x19b8], eax
jne 0x1003f512
mov byte [ecx + 0x19c8], 1
cmp dword [ebx + 0x19a8], 0
jne 0x1003f527
mov dword [ebx + 0x19ac], 0
jmp 0x1003f539
mov eax, dword [ebx + 0x19a0]
test eax, eax
je 0x1003f543
cmp dword [ebx + 0x19b4], eax
jne 0x1003f543
mov dword [ebx + 0x19b0], 0
mov eax, dword [ebx + 0x19a0]
test eax, eax
je 0x1003f57d
movss xmm1, dword [ebx + 0x20]
movaps xmm0, xmm1
addss xmm0, dword [ebx + 0x19ac]
movss dword [ebx + 0x19ac], xmm0
cmp dword [ebx + 0x19b4], eax
je 0x1003f57d
addss xmm1, dword [ebx + 0x19b0]
movss dword [ebx + 0x19b0], xmm1
mov dword [ebx + 0x19a8], eax
mov eax, dword [ebx + 0x19b4]
mov dword [ebx + 0x19a0], 0
mov byte [ebx + 0x19a4], 0
cmp dword [ebx + 0x19bc], eax
je 0x1003f5b3
cmp dword [ebx + 0x19b8], eax
jne 0x1003f5b3
test eax, eax
je 0x1003f5b3
call fcn.10036f80
mov ecx, dword [ebx + 0x19b4]
test ecx, ecx
je 0x1003f5d2
movss xmm0, dword [ebx + 0x20]
addss xmm0, dword [ebx + 0x19c0]
movss dword [ebx + 0x19c0], xmm0
mov eax, dword [ebx + 0x19dc]
movss xmm0, dword [ebx + 0x20]
addss xmm0, dword [ebx + 0x19ec]
mov dword [ebx + 0x19e0], eax
mov al, byte [ebx + 0x19c7]
mov byte [ebx + 0x19c9], al
mov eax, dword [ebx + 0x2bf4]
movss dword [ebx + 0x19ec], xmm0
mov dword [ebx + 0x19b8], ecx
mov dword [ebx + 0x19bc], 0
mov byte [ebx + 0x19c8], 0
mov byte [ebx + 0x19c4], 0
test eax, eax
je 0x1003f635
cmp ecx, eax
je 0x1003f635
mov dword [ebx + 0x2bf4], 0
mov eax, dword [ebx + 0x1cd4]
lea edi, [ebx + 0xc50]
movss xmm2, dword [0x101016b4]
mov ecx, 0x200
mov dword [ebx + 0x1cd8], eax
lea eax, [ebx + 0x450]
mov esi, eax
mov dword [ebx + 0x1cd4], 0
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1cd0], 0x7f7fffff
xor ecx, ecx
mov byte [ebx + 0x1c71], 0
nop dword [eax + eax]
cmp byte [ebx + ecx + 0x104], 0
je 0x1003f6a2
movss xmm0, dword [eax]
xorps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1003f69b
xorps xmm0, xmm0
jmp 0x1003f6a5
addss xmm0, dword [ebx + 0x20]
jmp 0x1003f6a5
movaps xmm0, xmm2
movss dword [eax], xmm0
inc ecx
add eax, 4
cmp ecx, 0x200
jl 0x1003f680
call fcn.1003d050
call fcn.10043aa0
mov eax, dword [ebx + 0x2e6c]
mov ecx, 0x78
movss xmm1, dword [ebx + 0x20]
xorps xmm2, xmm2
movaps xmm0, xmm1
subss xmm0, dword [ebx + eax*4 + 0x2c8c]
addss xmm0, dword [ebx + 0x2e70]
movss dword [ebx + 0x2e70], xmm0
movss dword [ebx + eax*4 + 0x2c8c], xmm1
mov eax, dword [ebx + 0x2e6c]
inc eax
movss xmm0, dword [ebx + 0x2e70]
cdq
idiv ecx
comiss xmm0, xmm2
mov dword [ebx + 0x2e6c], edx
jbe 0x1003f72a
divss xmm0, dword [0x10105484]
movss xmm1, dword [0x101016ac]
divss xmm1, xmm0
jmp 0x1003f732
movss xmm1, dword [0x101016b0]
movss dword [ebx + 0x360], xmm1
mov esi, dword [0x10214570]
mov edx, dword [esi + 0x19f8]
test edx, edx
je 0x1003f839
mov eax, dword [esi + 0x19b4]
mov dword [esi + 0x19bc], eax
cmp dword [esi + 0x19b8], eax
jne 0x1003f769
mov byte [esi + 0x19c8], 1
cmp byte [esi + 0xf0], 0
mov edx, dword [edx + 0x2f8]
je 0x1003f828
mov ecx, dword [0x10214570]
lea eax, [esi + 0xe8]
mov edi, eax
test eax, eax
jne 0x1003f794
lea edi, [ecx + 0xe8]
movss xmm0, dword [edi]
movss xmm1, dword [0x101054b0]
comiss xmm0, xmm1
movss xmm3, dword [edi + 4]
jb 0x1003f828
comiss xmm3, xmm1
jb 0x1003f828
movss xmm1, dword [eax]
subss xmm1, dword [esi + 0x19d4]
movss xmm0, dword [edx + 0xc]
movss xmm3, dword [eax + 4]
subss xmm3, dword [esi + 0x19d8]
ucomiss xmm0, xmm1
movss dword [ebp - 8], xmm1
movss dword [ebp - 4], xmm3
lahf
test ah, 0x44
jp 0x1003f7ee
movss xmm0, dword [edx + 0x10]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x1003f818
test dword [edx + 8], 0x100
jne 0x1003f809
comiss xmm2, dword [ecx + 0x2c48]
jb 0x1003f809
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x2c48], eax
push 1
lea eax, [ebp - 8]
push eax
push edx
call fcn.100422c0
add esp, 0xc
push dword [esi + 0x19f8]
call fcn.100390e0
add esp, 4
jmp 0x1003f871
call fcn.10036f80
mov dword [esi + 0x19f8], 0
jmp 0x1003f871
mov ecx, dword [esi + 0x19dc]
test ecx, ecx
je 0x1003f871
mov eax, dword [esi + 0x19b4]
cmp dword [ecx + 0x58], eax
jne 0x1003f871
mov dword [esi + 0x19bc], eax
cmp dword [esi + 0x19b8], eax
jne 0x1003f863
mov byte [esi + 0x19c8], 1
cmp byte [esi + 0xf0], 0
jne 0x1003f871
call fcn.10036f80
call fcn.10042f70
mov eax, dword [0x10214570]
mov edx, dword [eax + 0x1a20]
sub edx, 1
js 0x1003f8b0
mov eax, dword [eax + 0x1a28]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
mov ecx, dword [eax]
test ecx, ecx
je 0x1003f8a8
test dword [ecx + 8], 0x8000000
jne 0x1003f9c5
sub eax, 0x24
sub edx, 1
jns 0x1003f895
cmp dword [ebx + 0x1ae4], 0
xorps xmm6, xmm6
je 0x1003f8cd
movss xmm0, dword [ebx + 0x1af4]
comiss xmm0, xmm6
ja 0x1003f9c8
movss xmm0, dword [ebx + 0x20]
mulss xmm0, dword [0x10104d6c]
movss xmm1, dword [ebx + 0x1bf4]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [ebx + 0x1bf4], xmm1
mov dword [ebx + 0x1c6c], 0
mov dword [ebx + 0x2e7c], 0xffffffff
mov dword [ebx + 0x2e78], 0xffffffff
mov dword [ebx + 0x2e74], 0xffffffff
mov dword [ebx + 0x2c34], 0x3f800000
mov dword [ebx + 0x2c38], 0x3f800000
call fcn.10043fe0
cmp dword [ebx + 0x19b4], 0
jne 0x1003f9fb
mov ecx, dword [ebx + 0x1aa4]
test ecx, ecx
je 0x1003f9fb
cmp byte [ecx + 0x82], 0
je 0x1003f9fb
test dword [ecx + 8], 0x40000
jne 0x1003f9fb
cmp byte [ebx + 0x100], 0
jne 0x1003f9fb
mov edx, dword [0x10214570]
mov eax, dword [edx + 0x3c]
test eax, eax
js 0x1003f9fb
movss xmm0, dword [edx + eax*4 + 0x450]
ucomiss xmm0, xmm6
lahf
test ah, 0x44
jp 0x1003f9fb
cmp dword [ebx + 0x1aa8], 0
je 0x1003f9ea
mov eax, dword [ebx + 0x1b00]
cmp eax, 0x7fffffff
je 0x1003f9ea
xor esi, esi
mov edx, 2
cmp byte [ebx + 0x101], 0
cmovne edx, esi
add edx, eax
mov dword [ecx + 0x344], edx
jmp 0x1003f9fb
xorps xmm6, xmm6
movss xmm1, dword [ebx + 0x20]
mulss xmm1, dword [0x10102a48]
addss xmm1, dword [ebx + 0x1bf4]
minss xmm1, dword [0x101016ac]
jmp 0x1003f8ea
movzx eax, byte [ebx + 0x101]
neg eax
sbb eax, eax
mov dword [ecx + 0x344], eax
xor edx, edx
mov dword [ebx + 0x1b00], 0x7fffffff
cmp dword [ebx + 0x1954], edx
je 0x1003fa3c
nop
mov eax, dword [ebx + 0x195c]
mov ecx, dword [eax + edx*4]
inc edx
mov al, byte [ecx + 0x82]
mov byte [ecx + 0x83], al
mov byte [ecx + 0x82], 0
mov byte [ecx + 0x84], 0
cmp edx, dword [ebx + 0x1954]
jne 0x1003fa10
mov eax, dword [ebx + 0x1aa4]
test eax, eax
je 0x1003fabf
cmp byte [eax + 0x83], 0
jne 0x1003fabf
mov eax, dword [0x10214570]
mov edi, dword [eax + 0x1960]
sub edi, 1
js 0x1003fabf
mov eax, dword [eax + 0x1968]
lea eax, [eax + edi*4]
mov dword [ebp - 4], eax
nop
mov esi, dword [eax]
test esi, esi
je 0x1003fa9e
cmp byte [esi + 0x83], 0
je 0x1003fa9e
mov eax, dword [esi + 8]
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt dword [esi + 8], 0x18
setae al
test al, cl
jne 0x1003faab
mov eax, dword [ebp - 4]
sub eax, 4
sub edi, 1
mov dword [ebp - 4], eax
jns 0x1003fa70
jmp 0x1003fabf
mov eax, dword [esi + 0x304]
test eax, eax
cmovne esi, eax
push esi
call fcn.100390e0
add esp, 4
mov ecx, dword [ebx + 0x197c]
pop edi
test ecx, ecx
jns 0x1003fae6
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x1978]
call fcn.100447e0
mov dword [ebx + 0x1978], 0
mov ecx, dword [ebx + 0x1a30]
test ecx, ecx
jns 0x1003fb16
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x1a2c]
call fcn.10044870
mov dword [ebx + 0x1a2c], 0
push dword [ebx + 0x1aa4]
call fcn.100371f0
mov eax, dword [0x10214570]
push 0
push 0
push str.DebugDefault
mov dword [eax + 0x1a64], 0x43c80000
mov dword [eax + 0x1a68], 0x43c80000
mov dword [eax + 0x1a3c], 4
call fcn.100330c0
add esp, 0x10
mov byte [ebx + 9], 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret