Function at 0x41e2e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, dword [0x693740]
mov dword [ebp - 0x18], edi
mov eax, dword [edi + 0x3028]
sub eax, 1
mov dword [ebp - 8], eax
js 0x41e36e
lea ebx, [eax + eax*4]
shl ebx, 2
nop word [eax + eax]
mov ecx, dword [edi + 0x3030]
cmp dword [ecx + ebx + 4], 7
jne 0x41e363
mov esi, ecx
mov eax, 0x66666667
sub ecx, esi
add ecx, ebx
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
lea edx, [esi + eax*4]
mov eax, dword [edi + 0x3028]
sub eax, ecx
lea eax, [eax + eax*4]
lea eax, [eax*4 - 0x14]
push eax
lea eax, [edx + 0x14]
push eax
push edx
call fcn.004b3a80
mov eax, dword [ebp - 8]
add esp, 0xc
dec dword [edi + 0x3028]
dec eax
sub ebx, 0x14
mov dword [ebp - 8], eax
test eax, eax
jns 0x41e310
mov eax, dword [edi + 0x3028]
mov esi, dword [edi + 0x3030]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*4]
cmp esi, ebx
je 0x41e39b
cmp dword [esi + 4], 0
jne 0x41e394
mov eax, dword [esi + 0xc]
push esi
push edi
call eax
add esp, 8
add esi, 0x14
cmp esi, ebx
jne 0x41e384
mov eax, dword [0x693740]
cmp byte [eax + 0x4a], 0
je 0x41e3b0
test byte [eax + 0xc], 2
jne 0x41e3b0
mov byte [eax + 0x4a], 0
mov ebx, dword [0x693740]
cmp byte [ebx + 0x2ff0], 0
jne 0x41e4bd
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x41e4b6
push 0x4d46e8
push eax
call fcn.004177e0
mov esi, eax
add esp, 8
test esi, esi
je 0x41e4b6
push esi
call fcn.004b750e
add esp, 4
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x41e4ad
push 2
push 0
push esi
call fcn.004b6f9c
add esp, 0xc
test eax, eax
jne 0x41e4ad
push esi
call fcn.004b750e
add esp, 4
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
je 0x41e4ad
push 0
push dword [ebp - 8]
push esi
call fcn.004b6f9c
add esp, 0xc
test eax, eax
jne 0x41e4ad
push dword [0x693748]
push dword [ebp - 4]
call dword [0x588050]
add esp, 8
mov dword [ebp - 8], eax
test eax, eax
je 0x41e4ad
push esi
push dword [ebp - 4]
push 1
push eax
call fcn.004b6bb1
add esp, 0x10
push esi
cmp eax, dword [ebp - 4]
je 0x41e47f
call fcn.004b677e
push dword [0x693748]
mov esi, dword [ebp - 8]
push esi
call dword [0x588054]
add esp, 0xc
jmp 0x41e4b6
call fcn.004b677e
mov eax, dword [ebp - 4]
add esp, 4
mov esi, dword [ebp - 8]
test eax, eax
je 0x41e49b
push eax
push esi
call fcn.0041a400
add esp, 8
push dword [0x693748]
push esi
call dword [0x588054]
add esp, 8
jmp 0x41e4b6
push esi
call fcn.004b677e
add esp, 4
mov byte [ebx + 0x2ff0], 1
movss xmm0, dword [ebx + 0x2ff4]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x41e502
subss xmm0, dword [ebx + 0x18]
comiss xmm1, xmm0
movss dword [ebx + 0x2ff4], xmm0
jb 0x41e502
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x41e4f1
push eax
call fcn.00422660
add esp, 4
jmp 0x41e4f8
mov byte [ebx + 0x92], 1
mov dword [ebx + 0x2ff4], 0
movss xmm1, dword [edi + 0x18]
xor eax, eax
inc dword [edi + 0x11c8]
cvtps2pd xmm0, xmm1
mov byte [edi + 0x11d4], 1
mov word [edi + 0x2f54], ax
mov dword [edi + 0x123c], eax
addsd xmm0, qword [edi + 0x11c0]
movsd qword [edi + 0x11c0], xmm0
mov ecx, dword [edi + 0x2f68]
test ecx, ecx
jns 0x41e5ae
mov eax, ecx
xor esi, esi
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg esi, eax
cmp esi, ecx
jle 0x41e5ae
push dword [0x693748]
lea eax, [esi*4]
push eax
call dword [0x588050]
mov ebx, eax
add esp, 8
mov eax, dword [edi + 0x2f6c]
test eax, eax
je 0x41e59d
mov ecx, dword [edi + 0x2f64]
shl ecx, 2
push ecx
push eax
push ebx
call fcn.004b3a80
push dword [0x693748]
push dword [edi + 0x2f6c]
call dword [0x588054]
add esp, 0x14
mov dword [edi + 0x2f6c], ebx
mov dword [edi + 0x2f68], esi
movss xmm1, dword [edi + 0x18]
mov dword [edi + 0x2f64], 0
movaps xmm0, xmm1
mov eax, dword [edi + 0x3214]
mov ecx, 0x3c
subss xmm0, dword [edi + eax*4 + 0x3124]
addss xmm0, dword [edi + 0x321c]
movss dword [edi + 0x321c], xmm0
movss dword [edi + eax*4 + 0x3124], xmm1
mov eax, dword [edi + 0x3214]
inc eax
movss xmm1, dword [edi + 0x321c]
cdq
idiv ecx
mov eax, dword [edi + 0x3218]
movss xmm0, dword [0x54732c]
inc eax
cmp eax, ecx
mov dword [edi + 0x3214], edx
movss dword [ebp - 4], xmm0
cmovl ecx, eax
comiss xmm1, dword [0x4d480c]
mov dword [edi + 0x3218], ecx
jbe 0x41e63f
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss xmm0, dword [0x545fc4]
divss xmm0, xmm1
movss dword [edi + 0x98], xmm0
mov ecx, dword [edi + 0x11f0]
test ecx, ecx
jns 0x41e66d
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, [edi + 0x11ec]
call fcn.00428370
mov dword [edi + 0x11ec], 0
movzx eax, byte [edi + 0x46]
push eax
call fcn.00425000
mov esi, dword [0x693740]
add esp, 4
xorps xmm3, xmm3
mov eax, dword [esi + 0x1cac]
mov edx, dword [eax]
mov dword [edx], 5
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], ecx
mov ebx, dword [esi + 0x1cac]
mov eax, dword [esi + 0x1ca4]
lea esi, [ebx + eax*4]
cmp ebx, esi
je 0x41e79f
nop dword [eax]
mov edx, dword [ebx]
movaps xmm2, xmm3
add ebx, 4
mov eax, dword [edx + 0x94]
mov ecx, dword [edx + 0x98]
movss xmm1, dword [edx + 4]
mov dword [edx + 0x84], eax
mov eax, dword [edx + 0x9c]
mov dword [edx + 0x88], ecx
mov ecx, dword [edx + 0xa0]
mov dword [edx + 0x8c], eax
mov dword [edx + 0x90], ecx
mov dword [edx + 0x9c], 0
mov eax, dword [edx + 0x9c]
mov dword [edx + 0xa0], 0
mov ecx, dword [edx + 0xa0]
mov dword [edx + 0x94], eax
mov dword [edx + 0x98], ecx
movss xmm0, dword [edx + 0x88]
addss xmm0, dword [edx + 8]
addss xmm1, dword [edx + 0x84]
movss dword [edx + 0x18], xmm0
movss xmm0, dword [edx + 0xc]
movss dword [edx + 0x14], xmm1
movaps xmm1, xmm3
subss xmm0, dword [edx + 0x84]
addss xmm0, dword [edx + 0x8c]
maxss xmm2, xmm0
movss xmm0, dword [edx + 0x10]
subss xmm0, dword [edx + 0x88]
addss xmm0, dword [edx + 0x90]
movss dword [edx + 0x1c], xmm2
maxss xmm1, xmm0
movss dword [edx + 0x20], xmm1
cmp ebx, esi
jne 0x41e6d0
mov eax, dword [edi + 0x2c]
mov byte [eax + 0x10], 1
mov esi, dword [0x693740]
mov ebx, dword [esi + 0x38]
test ebx, ebx
jne 0x41e7bb
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax]
movss xmm0, dword [0x545fc4]
mov ecx, dword [esi + 0x1248]
mov dword [esi + 0xfb0], ebx
movss xmm1, dword [ebx + 0x10]
mulss xmm1, dword [esi + 0x30]
mulss xmm1, dword [ebx + 0x4c]
maxss xmm0, xmm1
movss dword [esi + 0xfb8], xmm0
test ecx, ecx
je 0x41e814
mov eax, dword [ecx]
movss xmm0, dword [eax + 0xfb8]
mov eax, dword [ecx + 0x300]
mulss xmm0, dword [ecx + 0x264]
test eax, eax
je 0x41e817
mulss xmm0, dword [eax + 0x264]
jmp 0x41e817
movaps xmm0, xmm3
movss xmm7, dword [0x54732c]
movss xmm5, dword [0x54733c]
movaps xmm6, xmm7
movss dword [esi + 0xfb4], xmm0
movaps xmm4, xmm5
mov edx, dword [ebx + 0x30]
mov eax, dword [edx + 0x34]
mov ecx, dword [edx + 0x38]
mov dword [esi + 0xfbc], eax
lea eax, [edx + 0x60]
mov dword [esi + 0xfc0], ecx
mov dword [esi + 0x11b8], eax
mov dword [esi + 0xfc4], ebx
movss dword [esi + 0xfc8], xmm0
mov ecx, dword [edi + 0x1cac]
mov eax, dword [edi + 0x1ca4]
lea edx, [ecx + eax*4]
cmp ecx, edx
je 0x41e8b7
mov eax, dword [ecx]
movss xmm3, dword [eax + 4]
comiss xmm7, xmm3
movss xmm2, dword [eax + 8]
movaps xmm0, xmm3
addss xmm0, dword [eax + 0xc]
movaps xmm1, xmm2
addss xmm1, dword [eax + 0x10]
jbe 0x41e898
movaps xmm7, xmm3
comiss xmm6, xmm2
jbe 0x41e8a0
movaps xmm6, xmm2
comiss xmm0, xmm5
jbe 0x41e8a8
movaps xmm5, xmm0
comiss xmm1, xmm4
jbe 0x41e8b0
movaps xmm4, xmm1
add ecx, 4
cmp ecx, edx
jne 0x41e874
mov eax, dword [edi + 0xc44]
movss dword [ebp - 0x14], xmm7
movss dword [ebp - 0x10], xmm6
movss dword [ebp - 0xc], xmm5
movss dword [ebp - 8], xmm4
movups xmm0, xmmword [ebp - 0x14]
push ecx
lea ecx, [edi + 0xfbc]
mov dword [edi + 0xfcc], eax
movups xmmword [edi + 0xfd4], xmm0
movss xmm0, dword [edi + 0xc48]
movss dword [esp], xmm0
call fcn.0042f4d0
xor edx, edx
mov dword [edi + 0xfe4], 0
cmp byte [edi + 0xc40], dl
je 0x41e91e
mov dword [edi + 0xfe4], 1
mov edx, 1
cmp byte [edi + 0xc41], 0
mov ecx, edx
je 0x41e940
mov eax, dword [edi + 0xfb0]
mov eax, dword [eax + 0x30]
test byte [eax], 4
jne 0x41e940
or ecx, 2
mov dword [edi + 0xfe4], ecx
cmp byte [edi + 0xc42], 0
je 0x41e952
or ecx, 4
mov dword [edi + 0xfe4], ecx
test byte [edi + 0xc], 8
je 0x41e961
or ecx, 8
mov dword [edi + 0xfe4], ecx
mov ecx, dword [edi + 0x1cac]
mov eax, dword [edi + 0x1ca4]
lea edx, [ecx + eax*4]
cmp ecx, edx
je 0x41e981
mov eax, dword [ecx]
add ecx, 4
mov byte [eax + 0x38], 0
cmp ecx, edx
jne 0x41e974
cmp byte [edi + 0x1e8c], 0
je 0x41e9bb
mov eax, dword [edi + 0x1ea4]
cmp eax, dword [edi + 0x1298]
jne 0x41e9bb
mov ecx, dword [0x693740]
cmp dword [ecx + 0x1298], eax
jne 0x41e9ac
mov dword [ecx + 0x129c], eax
cmp dword [ecx + 0x12c0], eax
jne 0x41e9bb
mov byte [ecx + 0x12c4], 1
cmp dword [edi + 0x1288], 0
mov eax, dword [edi + 0x1284]
jne 0x41e9d6
mov dword [edi + 0x1290], 0
jmp 0x41e9e4
mov ecx, eax
test eax, eax
je 0x41e9f0
cmp dword [edi + 0x1298], eax
jne 0x41e9f4
mov dword [edi + 0x1294], 0
mov ecx, eax
test ecx, ecx
je 0x41ea28
movss xmm1, dword [edi + 0x18]
mov eax, dword [edi + 0x1298]
movaps xmm0, xmm1
addss xmm0, dword [edi + 0x1290]
movss dword [edi + 0x1290], xmm0
cmp eax, ecx
je 0x41ea2e
addss xmm1, dword [edi + 0x1294]
movss dword [edi + 0x1294], xmm1
jmp 0x41ea2e
mov eax, dword [edi + 0x1298]
mov dword [edi + 0x1288], ecx
mov dword [edi + 0x1284], 0
mov word [edi + 0x128c], 0
test eax, eax
je 0x41eb0c
cmp dword [edi + 0x129c], eax
je 0x41eb0c
cmp dword [edi + 0x12c0], eax
jne 0x41eb0c
mov esi, dword [0x693740]
mov eax, dword [esi + 0x1298]
mov ecx, eax
test eax, eax
je 0x41eaab
mov ecx, dword [esi + 0x1254]
test ecx, ecx
je 0x41ea92
cmp eax, dword [ecx + 0x74]
jne 0x41ea92
mov dword [esi + 0x1254], 0
mov ecx, eax
cmp dword [esi + 0x1fe0], eax
jne 0x41eaab
push eax
call fcn.00444210
mov ecx, dword [esi + 0x1298]
add esp, 4
test ecx, ecx
setne al
mov byte [esi + 0x12a4], al
test ecx, ecx
je 0x41ead7
mov dword [esi + 0x12a0], 0
mov word [esi + 0x12a7], 0
mov dword [esi + 0x12bc], 0xffffffff
mov dword [esi + 0x1298], 0
mov word [esi + 0x12a5], 0
mov dword [esi + 0x12b4], 0
mov byte [esi + 0x12a9], 0
mov dword [esi + 0x1b58], 0
mov byte [esi + 0x1b5c], 0
mov ecx, dword [edi + 0x1298]
test ecx, ecx
je 0x41eb2b
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [edi + 0x12a0]
movss dword [edi + 0x12a0], xmm0
movss xmm2, dword [edi + 0x18]
mov eax, dword [edi + 0x12b4]
movaps xmm0, xmm2
addss xmm0, dword [edi + 0x12d0]
mov dword [edi + 0x12c8], eax
mov al, byte [edi + 0x12a8]
mov byte [edi + 0x12c5], al
mov eax, dword [edi + 0x2ec4]
movss dword [edi + 0x12d0], xmm0
mov dword [edi + 0x12c0], ecx
mov dword [edi + 0x129c], 0
mov byte [edi + 0x12a9], 0
mov byte [edi + 0x12c4], 0
mov byte [edi + 0x12a4], 0
test eax, eax
je 0x41eb98
cmp ecx, eax
je 0x41eb98
mov dword [edi + 0x2ec4], 0
test ecx, ecx
jne 0x41eba8
mov dword [edi + 0x1b58], ecx
mov byte [edi + 0x1b5c], cl
mov ecx, dword [edi + 0x1fb4]
test ecx, ecx
je 0x41ebcb
movss xmm0, dword [edi + 0x1fd0]
comiss xmm0, dword [edi + 0xf9c]
jb 0x41ebd5
mov dword [edi + 0x1fc4], ecx
jmp 0x41ebd5
mov dword [edi + 0x1fc4], 0
mov eax, dword [edi + 0x124c]
test eax, eax
je 0x41ebfb
movss xmm0, dword [edi + 0x1fd0]
comiss xmm0, dword [edi + 0xf9c]
jb 0x41ec05
mov eax, dword [eax + 8]
mov dword [edi + 0x1fc8], eax
jmp 0x41ec05
mov dword [edi + 0x1fc8], 0
movss xmm0, dword [edi + 0x1fbc]
mov dword [edi + 0x1fb8], ecx
test ecx, ecx
je 0x41ec2f
addss xmm2, xmm0
mov dword [edi + 0x1fb4], 0
movss dword [edi + 0x1fbc], xmm2
jmp 0x41ec6a
comiss xmm0, dword [0x4d480c]
jbe 0x41ec74
movss xmm0, dword [0x5472b8]
movaps xmm1, xmm2
addss xmm1, dword [edi + 0x1fc0]
addss xmm2, xmm2
movss dword [edi + 0x1fc0], xmm1
maxss xmm0, xmm2
comiss xmm1, xmm0
jb 0x41ec74
mov dword [edi + 0x1fbc], 0
mov dword [edi + 0x1fc0], 0
mov eax, dword [edi + 0x1ef0]
mov dword [edi + 0x1ef4], eax
mov dword [edi + 0x1ef0], 0
mov dword [edi + 0x1eec], 0x7f7fffff
mov word [edi + 0x1e8d], 0
mov dword [edi + 0x1efc], 0
call fcn.00425770
call fcn.0041bcb0
call fcn.00425960
call fcn.00424db0
mov esi, dword [0x693740]
mov ecx, dword [esi + 0x1254]
test ecx, ecx
je 0x41ed7c
mov eax, dword [esi + 0x1298]
mov dword [esi + 0x129c], eax
cmp dword [esi + 0x12c0], eax
jne 0x41ecea
mov byte [esi + 0x12c4], 1
cmp byte [esi + 0xc4], 0
mov edx, dword [ecx + 0x308]
je 0x41ed70
lea ecx, [esi + 0xbc]
test ecx, ecx
je 0x41ed07
mov eax, ecx
jmp 0x41ed11
mov eax, dword [0x693740]
add eax, 0xbc
movss xmm0, dword [eax]
movss xmm1, dword [0x547334]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x41ed70
comiss xmm2, xmm1
jb 0x41ed70
movss xmm0, dword [ecx]
lea eax, [ebp - 0xc]
subss xmm0, dword [esi + 0x12ac]
push 1
push eax
push edx
movss dword [ebp - 0xc], xmm0
movss xmm0, dword [ecx + 4]
subss xmm0, dword [esi + 0x12b0]
movss dword [ebp - 8], xmm0
call fcn.00423e60
push 0
push dword [esi + 0x1254]
call fcn.004164f0
add esp, 0x14
jmp 0x41ee60
mov dword [esi + 0x1254], 0
jmp 0x41edbb
mov ecx, dword [esi + 0x12b4]
test ecx, ecx
je 0x41ee60
mov eax, dword [esi + 0x1298]
cmp dword [ecx + 0x74], eax
jne 0x41ee60
mov dword [esi + 0x129c], eax
cmp dword [esi + 0x12c0], eax
jne 0x41edae
mov byte [esi + 0x12c4], 1
cmp byte [esi + 0xc4], 0
jne 0x41ee60
mov esi, dword [0x693740]
mov eax, dword [esi + 0x1298]
mov ecx, eax
test eax, eax
je 0x41edff
mov ecx, dword [esi + 0x1254]
test ecx, ecx
je 0x41ede6
cmp eax, dword [ecx + 0x74]
jne 0x41ede6
mov dword [esi + 0x1254], 0
mov ecx, eax
cmp dword [esi + 0x1fe0], eax
jne 0x41edff
push eax
call fcn.00444210
mov ecx, dword [esi + 0x1298]
add esp, 4
test ecx, ecx
setne al
mov byte [esi + 0x12a4], al
test ecx, ecx
je 0x41ee2b
mov dword [esi + 0x12a0], 0
mov dword [esi + 0x12bc], 0xffffffff
mov word [esi + 0x12a7], 0
mov byte [esi + 0x1b5c], 0
mov dword [esi + 0x1b58], 0
mov byte [esi + 0x12a9], 0
mov dword [esi + 0x12b4], 0
mov word [esi + 0x12a5], 0
mov dword [esi + 0x1298], 0
mov eax, dword [0x693740]
mov edx, dword [eax + 0x1c7c]
sub edx, 1
js 0x41ee97
mov eax, dword [eax + 0x1c84]
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*8]
add eax, 4
nop
mov ecx, dword [eax]
test ecx, ecx
je 0x41ee8f
test dword [ecx + 0xc], 0x8000000
jne 0x41eeb1
sub eax, 0x28
sub edx, 1
jns 0x41ee80
cmp dword [edi + 0x1e60], 0
je 0x41eed0
movss xmm0, dword [edi + 0x1e70]
comiss xmm0, dword [0x4d480c]
jbe 0x41eed0
movss xmm1, dword [edi + 0x18]
mulss xmm1, dword [0x547304]
addss xmm1, dword [edi + 0x1e88]
minss xmm1, dword [0x545fc4]
jmp 0x41eef1
movss xmm0, dword [edi + 0x18]
mulss xmm0, dword [0x547308]
movss xmm1, dword [edi + 0x1e88]
subss xmm1, xmm0
maxss xmm1, dword [0x4d480c]
movups xmm0, xmmword [edi + 0x2fd0]
mov dword [edi + 0x1fcc], 0
movss dword [edi + 0x1e88], xmm1
mov dword [edi + 0x3228], 0xffffffff
mov dword [edi + 0x3224], 0xffffffff
mov dword [edi + 0x3220], 0xffffffff
movups xmmword [edi + 0x2fe0], xmm0
mov byte [edi + 0x2fd0], 0
call fcn.00425fc0
cmp byte [edi + 0x11d7], 0
jne 0x41ef68
movss xmm1, dword [edi + 0x4c]
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x41ef68
movsd xmm0, qword [edi + 0x11c0]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
movss dword [ebp - 4], xmm0
jmp 0x41ef70
movss xmm0, dword [0x54732c]
mov ebx, dword [edi + 0x1208]
mov eax, dword [edi + 0x1200]
lea eax, [ebx + eax*4]
cmp ebx, eax
je 0x41f101
mov edi, eax
nop dword [eax]
mov esi, dword [ebx]
mov ax, word [esi + 0xbc]
mov cl, byte [esi + 0xae]
mov word [esi + 0xbe], ax
xor eax, eax
mov byte [esi + 0xaf], cl
mov byte [esi + 0xae], 0
mov byte [esi + 0xb0], 0
mov word [esi + 0xbc], ax
test cl, cl
jne 0x41f0ee
cmp byte [esi + 0x360], al
jne 0x41f0ee
comiss xmm0, dword [esi + 0x244]
jbe 0x41f0ee
mov ecx, dword [esi + 0x26c]
mov byte [esi + 0x360], 1
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x358], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x35c], eax
mov eax, dword [esi + 0xf4]
test eax, eax
je 0x41f03b
push dword [0x693748]
mov dword [esi + 0xf0], 0
push eax
mov dword [esi + 0xec], 0
call dword [0x588054]
add esp, 8
mov dword [esi + 0xf4], 0
mov ecx, dword [esi + 0x26c]
call fcn.0042fe90
mov eax, dword [esi + 0x190]
test eax, eax
je 0x41f07e
push dword [0x693748]
mov dword [esi + 0x18c], 0
push eax
mov dword [esi + 0x188], 0
call dword [0x588054]
add esp, 8
mov dword [esi + 0x190], 0
mov eax, dword [esi + 0x1b8]
test eax, eax
je 0x41f0b6
push dword [0x693748]
mov dword [esi + 0x1b4], 0
push eax
mov dword [esi + 0x1b0], 0
call dword [0x588054]
add esp, 8
mov dword [esi + 0x1b8], 0
mov eax, dword [esi + 0x1c4]
test eax, eax
je 0x41f0ee
push dword [0x693748]
mov dword [esi + 0x1c0], 0
push eax
mov dword [esi + 0x1bc], 0
call dword [0x588054]
add esp, 8
mov dword [esi + 0x1c4], 0
movss xmm0, dword [ebp - 4]
add ebx, 4
cmp ebx, edi
jne 0x41ef90
mov edi, dword [ebp - 0x18]
xor esi, esi
cmp dword [edi + 0x1f60], esi
jle 0x41f14d
xor ebx, ebx
xorps xmm1, xmm1
mov eax, dword [edi + 0x1f68]
movss xmm0, dword [eax + esi*4]
comiss xmm0, xmm1
jb 0x41f13e
movss xmm2, dword [ebp - 4]
comiss xmm2, xmm0
jbe 0x41f13e
mov eax, dword [edi + 0x1f48]
add eax, ebx
push eax
call fcn.0043b0f0
add esp, 4
xorps xmm1, xmm1
inc esi
add ebx, 0x200
cmp esi, dword [edi + 0x1f60]
jl 0x41f110
imul ebx, dword [edi + 0x1f34], 0x6c
mov esi, dword [edi + 0x1f3c]
add ebx, esi
cmp esi, ebx
je 0x41f18a
xorps xmm1, xmm1
movss xmm0, dword [esi + 4]
comiss xmm0, xmm1
jb 0x41f183
movss xmm2, dword [ebp - 4]
comiss xmm2, xmm0
jbe 0x41f183
push esi
call fcn.0043b1c0
add esp, 4
xorps xmm1, xmm1
add esi, 0x6c
cmp esi, ebx
jne 0x41f163
cmp byte [edi + 0x11d7], 0
je 0x41f20e
mov esi, dword [0x693740]
mov eax, dword [esi + 0x1c6c]
test eax, eax
je 0x41f1d1
push dword [0x693748]
mov dword [esi + 0x1c68], 0
push eax
mov dword [esi + 0x1c64], 0
call dword [0x588054]
add esp, 8
mov dword [esi + 0x1c6c], 0
mov eax, dword [esi + 0x1c78]
test eax, eax
je 0x41f209
push dword [0x693748]
mov dword [esi + 0x1c74], 0
push eax
mov dword [esi + 0x1c70], 0
call dword [0x588054]
add esp, 8
mov dword [esi + 0x1c78], 0
call fcn.0043af10
mov eax, dword [edi + 0x1cb0]
mov byte [edi + 0x11d7], 0
test eax, eax
je 0x41f277
cmp byte [eax + 0xaf], 0
jne 0x41f277
mov eax, dword [0x693740]
mov edx, dword [eax + 0x120c]
sub edx, 1
js 0x41f26b
mov eax, dword [eax + 0x1214]
lea esi, [eax + edx*4]
mov ecx, dword [esi]
test ecx, ecx
je 0x41f263
cmp byte [ecx + 0xaf], 0
je 0x41f263
mov eax, dword [ecx + 0xc]
and eax, 0x10200
cmp eax, 0x10200
jne 0x41f3ca
sub esi, 4
sub edx, 1
jns 0x41f241
push 1
push 0
call fcn.004164f0
add esp, 8
mov ecx, dword [edi + 0x1228]
test ecx, ecx
jns 0x41f2e4
mov eax, ecx
xor esi, esi
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg esi, eax
cmp esi, ecx
jle 0x41f2e4
push dword [0x693748]
imul eax, esi, 0x54
push eax
call dword [0x588050]
mov ebx, eax
add esp, 8
mov eax, dword [edi + 0x122c]
test eax, eax
je 0x41f2d8
imul ecx, dword [edi + 0x1224], 0x54
push ecx
push eax
push ebx
call fcn.004b3a80
push dword [0x693748]
push dword [edi + 0x122c]
call dword [0x588054]
add esp, 0x14
mov dword [edi + 0x122c], ebx
mov dword [edi + 0x1228], esi
mov dword [edi + 0x1224], 0
mov ecx, dword [edi + 0x1c8c]
test ecx, ecx
jns 0x41f314
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, [edi + 0x1c88]
call fcn.00428310
mov dword [edi + 0x1c88], 0
mov ecx, dword [edi + 0x1c68]
mov eax, ecx
mov ebx, ecx
test ecx, ecx
jns 0x41f399
cdq
xor esi, esi
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg esi, eax
mov eax, ecx
cmp esi, ecx
jle 0x41f399
push dword [0x693748]
lea eax, [esi*4]
push eax
call dword [0x588050]
mov ebx, eax
add esp, 8
mov eax, dword [edi + 0x1c6c]
test eax, eax
je 0x41f389
mov ecx, dword [edi + 0x1c64]
shl ecx, 2
push ecx
push eax
push ebx
call fcn.004b3a80
push dword [0x693748]
push dword [edi + 0x1c6c]
call dword [0x588054]
add esp, 0x14
mov dword [edi + 0x1c6c], ebx
mov eax, esi
mov dword [edi + 0x1c68], esi
mov ebx, esi
xor ecx, ecx
mov dword [edi + 0x1c64], 0
test eax, eax
jne 0x41f434
test ebx, ebx
je 0x41f3d2
mov eax, ebx
mov esi, 1
cdq
sub eax, edx
sar eax, 1
add eax, ebx
cmp eax, esi
cmovg esi, eax
cmp esi, ebx
jle 0x41f434
jmp 0x41f3d9
push 1
push ecx
jmp 0x41f26f
mov eax, 8
mov esi, eax
push dword [0x693748]
lea eax, [esi*4]
push eax
call dword [0x588050]
mov ebx, eax
add esp, 8
mov eax, dword [edi + 0x1c6c]
test eax, eax
je 0x41f422
mov ecx, dword [edi + 0x1c64]
shl ecx, 2
push ecx
push eax
push ebx
call fcn.004b3a80
push dword [0x693748]
push dword [edi + 0x1c6c]
call dword [0x588054]
add esp, 0x14
mov ecx, dword [edi + 0x1c64]
mov dword [edi + 0x1c6c], ebx
mov dword [edi + 0x1c68], esi
mov eax, dword [edi + 0x1c6c]
mov dword [eax + ecx*4], 0
inc dword [edi + 0x1c64]
mov ecx, dword [edi + 0x1c74]
test ecx, ecx
jns 0x41f4c8
mov eax, ecx
xor esi, esi
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg esi, eax
cmp esi, ecx
jle 0x41f4c8
push dword [0x693748]
lea eax, [esi*8]
sub eax, esi
shl eax, 3
push eax
call dword [0x588050]
mov ebx, eax
add esp, 8
mov eax, dword [edi + 0x1c78]
test eax, eax
je 0x41f4bc
mov ecx, dword [edi + 0x1c70]
lea edx, [ecx*8]
sub edx, ecx
shl edx, 3
push edx
push eax
push ebx
call fcn.004b3a80
push dword [0x693748]
push dword [edi + 0x1c78]
call dword [0x588054]
add esp, 0x14
mov dword [edi + 0x1c78], ebx
mov dword [edi + 0x1c74], esi
mov dword [edi + 0x1c70], 0
mov al, byte [edi + 0x30ad]
test al, al
je 0x41f4f0
sub al, 1
mov byte [edi + 0x30ad], al
jne 0x41f4f0
mov dword [edi + 0x1b68], 0
mov al, byte [edi + 0x30ac]
test al, al
je 0x41f50b
sub al, 1
mov byte [edi + 0x30ac], al
jne 0x41f50b
and dword [edi + 0x308c], 0xffffffef
mov byte [edi + 0x11d5], 1
mov eax, dword [0x693740]
push 0
push 0
push str.DebugDefault
or dword [eax + 0x1bcc], 2
mov dword [eax + 0x1bec], 0x43c80000
mov dword [eax + 0x1bf0], 0x43c80000
mov dword [eax + 0x1bd4], 4
call fcn.004104e0
add esp, 0xc
cmp byte [edi + 0x65], 0
je 0x41f588
mov cl, byte [edi + 0x30ae]
cmp cl, 0xff
jne 0x41f562
xor edx, edx
jmp 0x41f58b
mov eax, dword [edi + 0x11c8]
and eax, 0x80000003
jns 0x41f574
dec eax
or eax, 0xfffffffc
inc eax
neg eax
movsx ecx, cl
sbb eax, eax
inc eax
add eax, ecx
mov ecx, 0xa
cdq
idiv ecx
jmp 0x41f58b
or dl, 0xff
mov byte [edi + 0x30ae], dl
mov eax, dword [edi + 0x3028]
mov esi, dword [edi + 0x3030]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*4]
cmp esi, ebx
je 0x41f5be
cmp dword [esi + 4], 1
jne 0x41f5b7
mov eax, dword [esi + 0xc]
push esi
push edi
call eax
add esp, 8
add esi, 0x14
cmp esi, ebx
jne 0x41f5a7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret