Function at 0x40c932
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
cmp byte [0x4ed4c8], 0
push esi
push edi
je 0x40c964
mov eax, dword [0x4ed234]
add eax, dword [0x4ed236]
add eax, eax
movzx esi, ax
mov eax, 0x1068
mov dword [ebp - 0xc], esi
cmp si, ax
jle 0x40c971
mov esi, eax
jmp 0x40c96e
mov eax, dword [0x4ed222]
add eax, eax
movzx esi, ax
mov dword [ebp - 0xc], esi
push 0x47e360
push str.BVMIMX
push 0x47dc60
push str._s_s_0_12__s
mov edi, 0x47da60
push edi
call fcn.00401381
push edi
call fcn.00402994
push 0x4694e0
push edi
call fcn.0043ed2e
add esp, 0x20
mov dword [0x5ff13c], eax
mov edi, 0x48a5f4
push 3
pop ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], ecx
xor ecx, ecx
inc ecx
mov dword [ebp - 0x38], ecx
push eax
push ecx
push 0x8348
push 0x48a620
call fcn.0043efcb
xor ecx, ecx
add esp, 0x10
inc ecx
cmp cx, si
jg 0x40c9ff
push 8
pop eax
push eax
movzx edx, si
mov ecx, eax
pop esi
mov eax, dword [edi]
movsd xmm0, qword [ecx + 0x48a620]
movsd qword [ecx + eax], xmm0
add ecx, esi
sub edx, 1
jne 0x40c9e3
mov esi, dword [ebp - 0xc]
xor ecx, ecx
inc ecx
add edi, 4
sub dword [ebp - 0x20], 1
je 0x40ca0f
mov eax, dword [0x5ff13c]
jmp 0x40c9bd
push dword [0x5ff13c]
push ecx
push 0x8348
push 0x48a620
call fcn.0043efcb
push dword [0x5ff13c]
xor edi, edi
inc edi
push edi
push 0x8348
push 0x48a620
call fcn.0043efcb
push dword [0x5ff13c]
push edi
push 0x8348
push 0x48a620
call fcn.0043efcb
xor eax, eax
add esp, 0x30
mov edi, 0x48a604
inc eax
push dword [0x5ff13c]
push eax
push 0x8348
push 0x48a620
call fcn.0043efcb
xor eax, eax
add esp, 0x10
inc eax
cmp ax, si
jg 0x40caa6
push 8
pop eax
push eax
movzx edx, si
mov ecx, eax
pop esi
mov eax, dword [edi]
movsd xmm0, qword [ecx + 0x48a620]
movsd qword [ecx + eax], xmm0
add ecx, esi
sub edx, 1
jne 0x40ca8a
mov esi, dword [ebp - 0xc]
xor eax, eax
inc eax
add edi, 4
sub dword [ebp - 0x1c], 1
jne 0x40ca5f
mov eax, dword [0x5ff13c]
test eax, eax
je 0x40cabf
push eax
call fcn.0043e7de
pop ecx
call fcn.004072d8
xor esi, esi
inc esi
mov eax, esi
mov dword [ebp - 0x10], eax
cmp si, word [0x4ed224]
jg 0x40d1eb
movsx edi, ax
mov ecx, esi
imul edx, edi, 0x68
mov dword [ebp - 4], ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], edx
movzx esi, word [edx + 0x5b7c64]
xor edx, edx
inc edx
cmp dx, si
jg 0x40d1d7
mov esi, dword [ebp - 0x20]
movsx eax, cx
mov ecx, dword [edi*4 + 0x4ecec0]
imul edx, eax, 0x48
mov dword [ebp - 0x34], edx
cmp byte [ecx + edx + 0x23], 0
jne 0x40d1bd
movsx eax, word [ecx + edx + 0x2a]
xor esi, esi
mov edi, dword [ebp - 0x20]
imul eax, eax, 0x5c
movss xmm0, dword [eax + 0x5fcb40]
cvtps2pd xmm0, xmm0
movsd qword [0x5fcad8], xmm0
mulsd xmm0, qword [0x46a8a0]
movsd qword [0x5fcaf8], xmm0
movzx eax, word [ecx + edx + 0x20]
mov dword [ebp - 0x1c], eax
movzx eax, word [edi + 0x5b7c64]
cmp word [ebp - 4], ax
jge 0x40cb6e
mov ax, word [ecx + edx + 0x1c]
add ax, word [ebp - 0x1c]
movzx eax, ax
jmp 0x40cb75
movzx eax, word [edi + 0x5b7c60]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
movzx edi, ax
cwde
mov dword [ebp - 0xc], eax
movsx eax, word [ecx + edx + 0x1c]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x28]
cmp dword [ebp - 0xc], eax
jg 0x40cdfd
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
movsx edi, word [ecx + edx + 0x1c]
inc esi
add edi, eax
mov dword [ebp - 8], esi
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], edi
movzx ecx, ax
mov eax, dword [ebp - 0x24]
movzx eax, ax
cmove ecx, eax
movzx esi, cx
movsx eax, si
mov dword [ebp - 0x30], eax
imul edx, eax, 0x64
mov eax, dword [ebp - 8]
cwde
push esi
mov ecx, dword [eax*4 + 0x55fd80]
mov eax, dword [edx + 0x4ed530]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
movsx ecx, ax
mov eax, dword [edx + 0x4ed534]
mov ecx, dword [ecx*4 + 0x55fd80]
mov dword [ecx + 4], eax
call fcn.00402a08
mov eax, dword [ebp - 8]
xor edx, edx
movsx ecx, ax
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
mov eax, dword [ecx*4 + 0x55fd80]
push 8
movss dword [eax + 0x68], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcad0]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x58], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcac8]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x5c], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcb18]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x60], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcb10]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x64], xmm0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x3c], 0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x44], 0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x38], 0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x40], 0
mov eax, dword [ecx*4 + 0x55fd80]
mov word [eax + 0x72], dx
xor eax, eax
cmp dword [ebp - 0x18], edi
pop edx
cmove eax, edx
shl esi, 4
sub esi, eax
mov eax, dword [0x48a5f8]
movsd xmm0, qword [esi + eax]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0xc], xmm0
mov eax, dword [0x48a5f4]
movsd xmm0, qword [esi + eax]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x10], xmm0
mov eax, dword [0x48a5fc]
movsd xmm0, qword [esi + eax]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 8], xmm0
mov ecx, dword [ecx*4 + 0x55fd80]
lea eax, [ecx + 0x18]
push eax
lea eax, [ecx + 0x14]
push eax
lea eax, [ecx + 0x1c]
push eax
lea eax, [ecx + 0x10]
push eax
lea eax, [ecx + 0xc]
push eax
lea eax, [ecx + 8]
push eax
call fcn.004036c7
mov eax, dword [0x48a608]
movsd xmm0, qword [esi + eax]
mov eax, dword [ebp - 8]
movsx ecx, ax
cvtpd2ps xmm0, xmm0
mov eax, dword [ecx*4 + 0x55fd80]
movss dword [eax + 0x24], xmm0
mov eax, dword [0x48a604]
movsd xmm0, qword [esi + eax]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x28], xmm0
mov eax, dword [0x48a60c]
movsd xmm0, qword [esi + eax]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x20], xmm0
mov ecx, dword [ecx*4 + 0x55fd80]
lea eax, [ecx + 0x30]
push eax
lea eax, [ecx + 0x2c]
push eax
lea eax, [ecx + 0x34]
push eax
lea eax, [ecx + 0x28]
push eax
lea eax, [ecx + 0x24]
push eax
lea eax, [ecx + 0x20]
push eax
call fcn.004036c7
mov eax, dword [ebp - 0x10]
add esp, 0x34
mov edx, dword [ebp - 0x14]
movsx edi, ax
inc edx
movsx esi, dx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x34]
mov ecx, dword [edi*4 + 0x4ecec0]
mov dword [ebp - 0x18], esi
movsx eax, word [ecx + edx + 0x1c]
add eax, dword [ebp - 0xc]
cmp esi, eax
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
jle 0x40cb9f
movsd xmm0, qword [0x5fcae8]
mulsd xmm0, qword [0x46a7c8]
push ecx
push ecx
movsd qword [esp], xmm0
xorps xmm0, xmm0
push esi
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00402367
movsd xmm0, qword [0x5fcb00]
add esp, 0x14
xor eax, eax
inc eax
push eax
push esi
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x5fcb08]
movsd qword [esp], xmm0
call fcn.00401de4
xor eax, eax
add esp, 0x18
inc eax
cmp ax, si
jg 0x40ceae
movss xmm1, dword [0x46a8f0]
mov ecx, 0x55fd84
movzx edx, si
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx]
add ecx, 4
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
sub edx, 1
jne 0x40ce6a
movsd xmm0, qword [0x5fcae8]
mulsd xmm0, qword [0x46a7c8]
push ecx
push ecx
movsd qword [esp], xmm0
xorps xmm0, xmm0
push esi
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00402367
movsd xmm0, qword [0x5fcb00]
add esp, 0x14
push 0
push esi
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x5fcb08]
movsd qword [esp], xmm0
call fcn.00401de4
xor eax, eax
add esp, 0x18
inc eax
cmp ax, si
jg 0x40cf94
mov edx, 0x55fd84
movzx edi, si
mov ecx, dword [edx]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x48], eax
mov ecx, dword [edx]
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x4c], eax
mov ecx, dword [edx]
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x50], eax
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, dword [ecx + 0x28]
mov dword [ecx + 0x54], eax
sub edi, 1
jne 0x40cf15
movss xmm1, dword [0x46a8f0]
mov ecx, 0x55fd84
mov edi, dword [ebp - 0x28]
movzx edx, si
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx]
add ecx, 4
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
sub edx, 1
jne 0x40cf50
movsd xmm0, qword [0x5fcae8]
mulsd xmm0, qword [0x46a7c8]
push ecx
push ecx
movsd qword [esp], xmm0
xorps xmm0, xmm0
push esi
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00402367
xor eax, eax
add esp, 0x14
inc eax
cmp ax, si
jg 0x40d01e
mov eax, 0x55fd84
movzx edx, si
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x24]
comiss xmm0, dword [ecx + 0xc]
jbe 0x40cfe0
movss dword [ecx + 0xc], xmm0
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x28]
comiss xmm0, dword [ecx + 0x10]
jbe 0x40cff2
movss dword [ecx + 0x10], xmm0
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x50]
comiss xmm0, dword [ecx + 0x48]
jbe 0x40d004
movss dword [ecx + 0x48], xmm0
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x54]
comiss xmm0, dword [ecx + 0x4c]
jbe 0x40d016
movss dword [ecx + 0x4c], xmm0
add eax, 4
sub edx, 1
jne 0x40cfce
mov ecx, dword [ebp - 4]
movsx eax, cx
imul ecx, eax, 0x48
mov eax, dword [edi*4 + 0x4ecec0]
movzx eax, byte [ecx + eax + 0x28]
cmp eax, 0xc
ja case.0x40d038.9
jmp dword [eax*4 + 0x40da1a]
push str.frei
jmp 0x40d083
push str.Unterzug
jmp 0x40d083
push str.gelenkig_gelagert
jmp 0x40d083
push str.eingespannt
jmp 0x40d083
push str.Symmetrie_Achse
jmp 0x40d083
push str.Drehfeder
jmp 0x40d083
push str.Dreh__Senkfeder
jmp 0x40d083
push str.Vertikale_Feder
jmp 0x40d083
push str.Zwischenwand
jmp 0x40d083
push str.Trennstelle
push 0x47d960
call fcn.00423cb0
pop ecx
pop ecx
push 0x47a008
push 0x469624
push dword [0x5ff140]
call fcn.00407804
mov ecx, dword [ebp - 4]
movsx eax, cx
imul ecx, eax, 0x48
mov eax, dword [edi*4 + 0x4ecec0]
movsx eax, word [ecx + eax + 0x2a]
imul eax, eax, 0x5c
movss xmm0, dword [eax + 0x5fcb40]
mulss xmm0, dword [0x46a8c8]
cvtps2pd xmm0, xmm0
movsd qword [esp + 4], xmm0
mov dword [esp], str.__d___4.1lf_cm
push 0x47d860
call fcn.00401381
xor edx, edx
add esp, 0x10
inc edx
cmp word [0x4ed224], dx
jne 0x40d12a
mov ecx, dword [ebp - 4]
push 0x47d960
push str._auf_dem_Rand_
movsx eax, cx
push eax
push 2
push str.Abschnitt
push 0x47a008
push str._s_s_d_s_s_n
push dword [0x5ff140]
call fcn.00407804
add esp, 0x20
jmp 0x40d1af
cmp word [0x4ed274], 0
push 0x47d860
push 0x47d960
push 0x4699c8
je 0x40d14f
mov ax, word [0x4ed254]
cmp word [ebp - 0x10], ax
jg 0x40d17d
mov ecx, dword [ebp - 4]
push edi
push str._des_Bereichs
movsx eax, cx
push eax
push 2
push str.Abschnitt
push 0x47a008
push 0x4699dc
push dword [0x5ff140]
call fcn.00407804
add esp, 0x2c
jmp 0x40d1af
cwde
mov ecx, edi
sub ecx, eax
push ecx
mov ecx, dword [ebp - 4]
push edx
push 0x4699f0
movsx eax, cx
push eax
push 2
push str.Abschnitt
push 0x47a008
push str._s_s_d_s_d_s_s_s_n
push dword [0x5ff140]
call fcn.00407804
add esp, 0x30
push esi
push dword [ebp - 0x1c]
call fcn.00407843
mov esi, dword [ebp - 0x20]
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
movzx eax, word [esi + 0x5b7c64]
inc ecx
mov dword [ebp - 4], ecx
cmp cx, ax
jle 0x40cb00
mov eax, dword [ebp - 0x10]
inc eax
push 1
mov dword [ebp - 0x10], eax
pop esi
cmp ax, word [0x4ed224]
jle 0x40cad9
push 0x47a008
push 0x469624
push dword [0x5ff140]
call fcn.00407804
push 0x47e360
push str.BV_AS
push 0x47dc60
push str._s_s_s
mov edi, 0x47da60
push edi
call fcn.00401381
push 0x4694e4
push edi
call fcn.0043ed2e
mov di, word [0x4ed224]
mov ecx, eax
add esp, 0x28
mov dword [0x5ff13c], ecx
mov edx, esi
cmp si, di
jmp 0x40da02
mov eax, esi
movsx esi, dx
mov dword [ebp - 0xc], esi
imul esi, esi, 0x68
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], esi
movzx esi, word [esi + 0x5b7c64]
cmp word [ebp - 0x38], si
jg 0x40d9fb
cwde
imul edi, eax, 0x48
mov eax, dword [ebp - 0xc]
mov edx, dword [eax*4 + 0x4ecec0]
mov dword [ebp - 0x14], edi
cmp byte [edx + edi + 0x23], 0
jne 0x40d9d7
movsx eax, word [edx + edi + 0x2a]
xor esi, esi
imul eax, eax, 0x5c
movss xmm0, dword [eax + 0x5fcb40]
cvtps2pd xmm0, xmm0
movsd qword [0x5fcad8], xmm0
mulsd xmm0, qword [0x46a8a0]
movsd qword [0x5fcaf8], xmm0
movzx ecx, word [edx + edi + 0x20]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x18]
movzx eax, word [ecx + 0x5b7c64]
mov ecx, dword [ebp - 0x24]
cmp word [ebp - 0x1c], ax
jge 0x40d2d9
mov ax, word [edx + edi + 0x1c]
add ax, cx
movzx eax, ax
jmp 0x40d2e3
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 0x5b7c60]
mov dword [ebp - 0x28], eax
movzx eax, cx
mov dword [ebp - 0x20], eax
movsx eax, word [edx + edi + 0x1c]
movsx ecx, cx
add eax, ecx
cmp ecx, eax
jg 0x40d6f9
mov dword [ebp - 8], ecx
movsx edi, word [edx + edi + 0x1c]
inc esi
mov eax, dword [ebp - 0x20]
add edi, ecx
cmp dword [ebp - 8], edi
movzx ecx, ax
mov eax, dword [ebp - 0x28]
movzx eax, ax
cmove ecx, eax
mov dword [ebp - 0x10], esi
movzx esi, cx
movsx eax, si
mov dword [ebp - 0x30], eax
imul edx, eax, 0x64
mov eax, dword [ebp - 0x10]
cwde
push esi
mov ecx, dword [eax*4 + 0x55fd80]
mov eax, dword [edx + 0x4ed530]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
movsx ecx, ax
mov eax, dword [edx + 0x4ed534]
mov ecx, dword [ecx*4 + 0x55fd80]
mov dword [ecx + 4], eax
call fcn.00402a08
mov eax, dword [ebp - 0x10]
xor edx, edx
movsx ecx, ax
fstp dword [ebp - 0x34]
movss xmm0, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
mov eax, dword [ecx*4 + 0x55fd80]
push 8
movss dword [eax + 0x68], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcad0]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x58], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcac8]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x5c], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcb18]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x60], xmm0
movsd xmm0, qword [0x5fcaf8]
subsd xmm0, qword [0x5fcb10]
mov eax, dword [ecx*4 + 0x55fd80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x64], xmm0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x3c], 0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x44], 0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x38], 0
mov eax, dword [ecx*4 + 0x55fd80]
and dword [eax + 0x40], 0
mov eax, dword [ecx*4 + 0x55fd80]
mov word [eax + 0x72], dx
xor eax, eax
cmp dword [ebp - 8], edi
mov edi, dword [ebp - 0x14]
pop edx
cmove eax, edx
mov edx, dword [ebp - 0xc]
shl esi, 4
sub esi, eax
mov eax, dword [0x48a5f4]
movsd xmm6, qword [esi + eax]
mov eax, dword [0x48a5f8]
movsd xmm7, qword [eax + esi]
mov eax, dword [0x48a5fc]
movsd xmm5, qword [eax + esi]
mov eax, dword [edx*4 + 0x4ecec0]
movss xmm3, dword [edi + eax + 0x14]
movss xmm2, dword [edi + eax + 0x10]
movaps xmm4, xmm5
cvtps2pd xmm2, xmm2
mov eax, dword [ecx*4 + 0x55fd80]
cvtps2pd xmm3, xmm3
movaps xmm1, xmm2
addsd xmm4, xmm5
mulsd xmm1, xmm6
movaps xmm0, xmm3
mulsd xmm0, xmm7
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
movaps xmm0, xmm4
mulsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [eax + 0xc], xmm0
mov eax, dword [edx*4 + 0x4ecec0]
movss xmm3, dword [edi + eax + 0x10]
movss xmm1, dword [edi + eax + 0x14]
cvtps2pd xmm1, xmm1
mov eax, dword [ecx*4 + 0x55fd80]
cvtps2pd xmm3, xmm3
movaps xmm2, xmm1
movaps xmm0, xmm3
mulsd xmm2, xmm6
mulsd xmm0, xmm7
subsd xmm7, xmm6
mulsd xmm2, xmm1
mulsd xmm0, xmm3
mulsd xmm3, xmm4
addsd xmm2, xmm0
mulsd xmm3, xmm1
addsd xmm2, xmm3
cvtpd2ps xmm0, xmm2
movss dword [eax + 0x10], xmm0
mov eax, dword [edx*4 + 0x4ecec0]
movss xmm2, dword [edi + eax + 0x10]
movss xmm3, dword [edi + eax + 0x14]
movaps xmm1, xmm2
mulss xmm1, xmm2
movaps xmm0, xmm3
mov eax, dword [ecx*4 + 0x55fd80]
mulss xmm0, xmm3
subss xmm1, xmm0
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm1
mulsd xmm7, xmm0
cvtps2pd xmm0, xmm3
mulsd xmm1, xmm5
mulsd xmm7, xmm0
subsd xmm1, xmm7
cvtpd2ps xmm0, xmm1
movss dword [eax + 8], xmm0
mov ecx, dword [ecx*4 + 0x55fd80]
lea eax, [ecx + 0x18]
push eax
lea eax, [ecx + 0x14]
push eax
lea eax, [ecx + 0x1c]
push eax
lea eax, [ecx + 0x10]
push eax
lea eax, [ecx + 0xc]
push eax
lea eax, [ecx + 8]
push eax
call fcn.004036c7
mov eax, dword [0x48a604]
mov edx, dword [ebp - 0xc]
movsd xmm6, qword [eax + esi]
mov eax, dword [0x48a608]
movsd xmm7, qword [eax + esi]
mov eax, dword [0x48a60c]
movsd xmm5, qword [eax + esi]
mov eax, dword [edx*4 + 0x4ecec0]
movss xmm3, dword [edi + eax + 0x14]
movss xmm2, dword [edi + eax + 0x10]
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
mov esi, dword [ebp - 0x10]
movsx ecx, si
movaps xmm0, xmm3
mov eax, dword [ecx*4 + 0x55fd80]
mulsd xmm0, xmm7
movaps xmm4, xmm5
movaps xmm1, xmm2
addsd xmm4, xmm5
mulsd xmm1, xmm6
mulsd xmm0, xmm3
mulsd xmm1, xmm2
addsd xmm1, xmm0
movaps xmm0, xmm4
mulsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [eax + 0x24], xmm0
mov eax, dword [edx*4 + 0x4ecec0]
movss xmm3, dword [edi + eax + 0x10]
movss xmm1, dword [edi + eax + 0x14]
cvtps2pd xmm1, xmm1
mov eax, dword [ecx*4 + 0x55fd80]
cvtps2pd xmm3, xmm3
movaps xmm2, xmm1
movaps xmm0, xmm3
mulsd xmm2, xmm6
mulsd xmm0, xmm7
subsd xmm7, xmm6
mulsd xmm2, xmm1
mulsd xmm0, xmm3
mulsd xmm3, xmm4
addsd xmm2, xmm0
mulsd xmm3, xmm1
addsd xmm2, xmm3
cvtpd2ps xmm0, xmm2
movss dword [eax + 0x28], xmm0
mov eax, dword [edx*4 + 0x4ecec0]
movss xmm2, dword [edi + eax + 0x10]
movss xmm3, dword [edi + eax + 0x14]
movaps xmm1, xmm2
mulss xmm1, xmm2
movaps xmm0, xmm3
mov eax, dword [ecx*4 + 0x55fd80]
mulss xmm0, xmm3
subss xmm1, xmm0
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm1
mulsd xmm7, xmm0
cvtps2pd xmm0, xmm3
mulsd xmm1, xmm5
mulsd xmm7, xmm0
subsd xmm1, xmm7
cvtpd2ps xmm0, xmm1
movss dword [eax + 0x20], xmm0
mov ecx, dword [ecx*4 + 0x55fd80]
lea eax, [ecx + 0x30]
push eax
lea eax, [ecx + 0x2c]
push eax
lea eax, [ecx + 0x34]
push eax
lea eax, [ecx + 0x28]
push eax
lea eax, [ecx + 0x24]
push eax
lea eax, [ecx + 0x20]
push eax
call fcn.004036c7
mov eax, dword [ebp - 0xc]
add esp, 0x34
mov ecx, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0x20], ecx
mov edx, dword [eax*4 + 0x4ecec0]
movsx eax, cx
mov dword [ebp - 8], eax
movsx eax, word [edx + edi + 0x1c]
mov edi, dword [ebp - 0x24]
movsx ecx, di
mov edi, dword [ebp - 0x14]
add eax, ecx
cmp dword [ebp - 8], eax
jle 0x40d301
movsd xmm0, qword [0x5fcae8]
mulsd xmm0, qword [0x46a7c8]
push ecx
push ecx
movzx edi, si
mov dword [ebp - 0x34], edi
movsd qword [esp], xmm0
xorps xmm0, xmm0
push esi
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00402367
movsd xmm0, qword [0x5fcb00]
add esp, 0x14
xor eax, eax
inc eax
push eax
push esi
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x5fcb08]
movsd qword [esp], xmm0
call fcn.00401de4
xor eax, eax
add esp, 0x18
inc eax
cmp ax, si
jg 0x40d7b0
movss xmm1, dword [0x46a8f0]
mov ecx, 0x55fd84
movzx edx, si
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx]
add ecx, 4
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
sub edx, 1
jne 0x40d76c
movsd xmm0, qword [0x5fcae8]
mulsd xmm0, qword [0x46a7c8]
push ecx
push ecx
movsd qword [esp], xmm0
xorps xmm0, xmm0
push esi
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00402367
movsd xmm0, qword [0x5fcb00]
add esp, 0x14
push 0
push esi
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x5fcb08]
movsd qword [esp], xmm0
call fcn.00401de4
xor eax, eax
add esp, 0x18
inc eax
cmp ax, si
jg 0x40d896
mov edx, 0x55fd84
movzx edi, si
mov ecx, dword [edx]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x48], eax
mov ecx, dword [edx]
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x4c], eax
mov ecx, dword [edx]
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x50], eax
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, dword [ecx + 0x28]
mov dword [ecx + 0x54], eax
sub edi, 1
jne 0x40d817
movss xmm1, dword [0x46a8f0]
mov ecx, 0x55fd84
movzx edx, si
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx]
add ecx, 4
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
sub edx, 1
jne 0x40d84f
mov edi, dword [ebp - 0x34]
movsd xmm0, qword [0x5fcae8]
mulsd xmm0, qword [0x46a7c8]
push ecx
push ecx
movsd qword [esp], xmm0
xorps xmm0, xmm0
push esi
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.00402367
xor eax, eax
add esp, 0x14
inc eax
cmp ax, si
jg 0x40d9cb
mov eax, 0x55fd84
movzx edx, si
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x24]
comiss xmm0, dword [ecx + 0xc]
jbe 0x40d8e6
movss dword [ecx + 0xc], xmm0
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x28]
comiss xmm0, dword [ecx + 0x10]
jbe 0x40d8f8
movss dword [ecx + 0x10], xmm0
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x50]
comiss xmm0, dword [ecx + 0x48]
jbe 0x40d90a
movss dword [ecx + 0x48], xmm0
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0x54]
comiss xmm0, dword [ecx + 0x4c]
jbe 0x40d91c
movss dword [ecx + 0x4c], xmm0
add eax, 4
sub edx, 1
jne 0x40d8d4
xor esi, esi
inc esi
mov word [0x550a96], si
mov ecx, esi
push dword [0x5ff13c]
movsx eax, cx
push esi
push 4
mov eax, dword [eax*4 + 0x55fd80]
add eax, 0x38
push eax
call fcn.0043f495
push dword [0x5ff13c]
movsx eax, word [0x550a96]
push esi
push 4
mov eax, dword [eax*4 + 0x55fd80]
add eax, 0x3c
push eax
call fcn.0043f495
push dword [0x5ff13c]
movsx eax, word [0x550a96]
push esi
push 4
mov eax, dword [eax*4 + 0x55fd80]
add eax, 0x40
push eax
call fcn.0043f495
push dword [0x5ff13c]
movsx eax, word [0x550a96]
push esi
push 4
mov eax, dword [eax*4 + 0x55fd80]
add eax, 0x44
push eax
call fcn.0043f495
mov ax, word [0x550a96]
add esp, 0x40
inc ax
mov word [0x550a96], ax
movzx ecx, ax
cmp ax, di
jle 0x40d930
jmp 0x40d9d1
mov word [0x550a96], ax
mov ecx, dword [0x5ff13c]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
movzx edx, word [edx + 0x5b7c64]
cmp ax, dx
jle 0x40d268
mov di, word [0x4ed224]
mov edx, dword [ebp - 4]
inc edx
push 1
cmp dx, di
pop esi
mov dword [ebp - 4], edx
jle 0x40d246
pop edi
pop esi
test ecx, ecx
je 0x40da18
push ecx
call fcn.0043e7de
pop ecx
leave
ret