Function at 0x45ef70
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x194
xor eax, eax
push eax
push eax
push 0x34
push 0x4b5358
push eax
push 0x50
push str._sccsid_undefined_
call sub.libifcoremd.dll_for_cpystr
add esp, 0x1c
mov ebx, dword [ebp + 0x24]
xor edi, edi
mov ecx, dword [ebp + 0x28]
movsd xmm1, qword [0x4b5338]
cvtss2sd xmm0, dword [ebx]
cvtss2sd xmm2, dword [ecx]
mulsd xmm1, xmm0
movaps xmm3, xmm0
divsd xmm3, xmm2
cvtsd2ss xmm3, xmm3
cvtsd2ss xmm1, xmm1
mov edx, dword [ebx]
cvttss2si ebx, xmm3
add ebx, 5
movsd qword [esp + 0x50], xmm0
movss dword [esp + 0xa0], xmm1
mov dword [esp + 0x78], edx
movss dword [esp + 0x7c], xmm3
mov dword [esp + 0x68], ebx
add esp, 0xffffffdc
mov esi, dword [ebp + 0x34]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0xc]
mov dword [esi], edi
lea esi, [esp + 0x48]
mov dword [esp + 0xc], 0x4b51c0
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 0x720980
mov dword [esp + 0x18], 0x6efc40
mov dword [eax], edi
mov dword [esp + 0x1c], 0x6bef00
mov dword [esp + 0x20], 0x68e1c0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
movsd qword [esp + 0x34], xmm0
call fcn.004614bc
mov eax, dword [esp + 0x24]
test eax, eax
movsd xmm0, qword [esp + 0x10]
mov dword [0x77a7e4], eax
jle 0x45f1b2
cvtsi2ss xmm0, eax
movss dword [esp], xmm0
call sub.libmmd.dll_logf
fstp dword [esp + 0x60]
movss xmm1, dword [esp + 0x60]
movss xmm0, dword [0x4b53d8]
mulss xmm1, xmm0
mov edi, dword [esp + 0x24]
mov ecx, edi
addss xmm1, dword [0x4b53dc]
cvttss2si esi, xmm1
test esi, esi
jle 0x45f1ac
mov ebx, 1
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, edi
sar ecx, 1
sub eax, ecx
test eax, eax
jle 0x45f1a3
mov dword [esp + 0x18], ebx
mov edx, 1
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
movss xmm1, dword [edx*4 + 0x72097c]
lea ebx, [ecx + edx]
shl ebx, 2
mov esi, edx
movss xmm0, dword [ebx + 0x72097c]
comiss xmm1, xmm0
jb 0x45f18e
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], ecx
mov edi, dword [esi*4 + 0x68e1bc]
mov dword [esp + 0x2c], edi
mov edi, dword [ebx + 0x6efc3c]
mov edx, dword [esi*4 + 0x6efc3c]
mov dword [esi*4 + 0x6efc3c], edi
mov edi, dword [ebx + 0x6beefc]
mov eax, dword [esi*4 + 0x6beefc]
mov dword [esi*4 + 0x6beefc], edi
mov edi, dword [ebx + 0x68e1bc]
mov ecx, dword [esi*4 + 0x72097c]
movss dword [esi*4 + 0x72097c], xmm0
mov dword [esi*4 + 0x68e1bc], edi
mov dword [ebx + 0x6beefc], eax
sub esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
test esi, esi
mov dword [ebx + 0x72097c], ecx
mov dword [ebx + 0x6efc3c], edx
mov dword [ebx + 0x68e1bc], eax
jle 0x45f182
mov eax, dword [esp + 0x28]
movss xmm1, dword [esi*4 + 0x72097c]
lea ebx, [eax + esi]
shl ebx, 2
movss xmm0, dword [ebx + 0x72097c]
comiss xmm1, xmm0
jae 0x45f0ea
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
inc edx
cmp edx, eax
jle 0x45f0bc
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
inc ebx
cmp ebx, esi
jle 0x45f096
cvtss2sd xmm0, dword [esp + 0x78]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
movss xmm2, dword [0x4b53d4]
cvtss2sd xmm5, dword [edx]
cvtss2sd xmm1, dword [ecx]
subsd xmm5, xmm0
addsd xmm1, xmm0
cvtsd2ss xmm5, xmm5
cvtsd2ss xmm1, xmm1
addss xmm5, xmm2
subss xmm1, xmm2
mov eax, dword [ebp + 0x28]
subss xmm1, xmm5
movss xmm6, dword [eax]
addss xmm1, xmm6
divss xmm1, xmm6
cvttss2si eax, xmm1
test eax, eax
jle 0x45f7d5
mov ecx, 0x186a0
xor edx, edx
mov esi, 1
movss xmm4, dword [0x4b53d8]
movd xmm7, ecx
pshufd xmm7, xmm7, 0
movss xmm3, dword [0x4b53dc]
movss xmm2, dword [0x4b53e0]
movdqa xmmword [esp + 0x30], xmm7
movss dword [esp + 0xb8], xmm5
movss dword [esp + 0x20], xmm6
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, 0x2710
jg 0x460712
mov ecx, dword [esp + 0x24]
movss xmm1, dword [esp + 0xb8]
movss xmm0, dword [esp + 0x78]
movss dword [esp + 0x7c], xmm1
lea edx, [ecx - 1]
mov dword [0x77a7e8], ecx
test edx, edx
addss xmm0, xmm1
jle 0x45f2c3
mov eax, 1
movss xmm1, dword [eax*4 + 0x72097c]
comiss xmm1, xmm0
ja 0x46070b
movss xmm1, dword [eax*4 + 0x720980]
comiss xmm1, xmm0
ja 0x460703
add eax, 2
cmp eax, edx
jle 0x45f298
mov dword [esp + 0x70], ecx
xor edi, edi
mov esi, dword [esp + 0x40]
mov ebx, dword [ebp + 0x28]
mov eax, dword [esp + 0x48]
cmp esi, eax
mov dword [esp + 0x5c], edi
cmovl esi, eax
mov dword [esp + 0x58], edi
mov edx, esi
cmp esi, dword [esp + 0x70]
jg 0x4606fa
mov ecx, edi
mov dword [esp + 0x40], esi
mov ebx, edx
mov dword [esp + 0x6c], ecx
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp + 0x1c]
lea ecx, [ebx*4 + 0x72097c]
movss xmm1, dword [esp + 0xa0]
movss xmm2, dword [esi]
movss xmm0, dword [edi]
lea edi, [ebx*4 + 0x6efc3c]
subss xmm0, xmm1
addss xmm2, xmm1
movss dword [esp + 0xa4], xmm0
movss dword [esp + 0xa8], xmm2
add esp, 0xffffffd0
lea edx, [esp + 0xac]
lea eax, [esp + 0xd8]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
lea eax, [ebx*4 + 0x6beefc]
mov dword [esp + 0x14], ecx
lea ecx, [ebx*4 + 0x68e1bc]
mov dword [esp + 0x18], edi
lea edi, [esp + 0xdc]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xd4]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], 0x751860
mov dword [esp + 0x2c], 0x7516c0
call fcn.00460a9c
mov eax, dword [esp + 0xac]
test eax, eax
je 0x45f695
test byte [esp + 0x6c], 1
jne 0x45f530
mov ecx, dword [esp + 0x44]
mov dword [ecx*4 + 0x751a00], ebx
lea ecx, [ecx + 1]
mov dword [0x77a7f4], ecx
cmp ecx, dword [esp + 0x68]
jle 0x45f51c
cmp dword [esp + 0x44], 0
jle 0x45f50d
cmp dword [esp + 0x44], 0x10
jl 0x45f74b
mov edx, dword [esp + 0x44]
xor ecx, ecx
movdqa xmm0, xmmword [esp + 0x30]
and edx, 0xfffffff0
movdqu xmm1, xmmword [ecx*4 + 0x751a04]
movdqu xmm4, xmmword [ecx*4 + 0x751a24]
movdqu xmm6, xmmword [ecx*4 + 0x751a34]
movdqa xmm2, xmm1
movdqa xmm5, xmm4
pcmpgtd xmm2, xmm0
pxor xmm0, xmm1
pand xmm2, xmm0
movdqu xmm0, xmmword [ecx*4 + 0x751a14]
pxor xmm2, xmm1
movdqa xmm3, xmm0
pcmpgtd xmm3, xmm2
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
pcmpgtd xmm5, xmm3
pxor xmm3, xmm4
pand xmm5, xmm3
movdqa xmmword [ecx*4 + 0x751a10], xmm0
pxor xmm5, xmm4
movdqa xmm0, xmm6
pcmpgtd xmm0, xmm5
pxor xmm5, xmm6
movdqa xmmword [ecx*4 + 0x751a00], xmm1
pand xmm0, xmm5
movdqa xmmword [ecx*4 + 0x751a20], xmm4
pxor xmm0, xmm6
movdqa xmmword [ecx*4 + 0x751a30], xmm6
add ecx, 0x10
cmp ecx, edx
jb 0x45f3fa
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm1, xmm0
pand xmm2, xmm1
pxor xmm2, xmm0
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm0, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
movd dword [esp + 0x48], xmm3
cmp edx, dword [esp + 0x44]
jae 0x45f516
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ecx, dword [edx*4 + 0x751a04]
cmp ecx, esi
mov dword [edx*4 + 0x751a00], ecx
jge 0x45f4ff
mov esi, ecx
inc edx
cmp edx, edi
jb 0x45f4eb
mov dword [esp + 0x48], esi
mov esi, dword [ebp + 0x20]
jmp 0x45f516
mov ecx, 0x186a0
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x44]
jmp 0x45f524
mov dword [esp + 0x48], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x6c], 0xffffffff
mov dword [0x77a7e0], eax
test eax, eax
jle 0x45f637
cvtsi2ss xmm0, eax
movss dword [esp], xmm0
call sub.libmmd.dll_logf
fstp dword [esp + 0x60]
movss xmm0, dword [esp + 0x60]
mulss xmm0, dword [0x4b53d8]
mov eax, dword [esp + 0xac]
mov edi, eax
addss xmm0, dword [0x4b53dc]
cvttss2si ecx, xmm0
test ecx, ecx
jle 0x45f637
mov dword [esp + 0x4c], ebx
mov edx, 1
mov ebx, edi
mov esi, eax
shr ebx, 0x1f
add edi, ebx
sar edi, 1
sub esi, edi
test esi, esi
jle 0x45f627
mov dword [esp + 0xb4], edx
mov ebx, 1
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x74], eax
movss xmm1, dword [ebx*4 + 0x7516bc]
lea eax, [edi + ebx]
shl eax, 2
mov edx, ebx
movss xmm0, dword [eax + 0x7516bc]
comiss xmm1, xmm0
jb 0x45f605
mov ecx, dword [edx*4 + 0x7516bc]
movss dword [edx*4 + 0x7516bc], xmm0
sub edx, edi
mov dword [eax + 0x7516bc], ecx
test edx, edx
jle 0x45f605
lea eax, [edi + edx]
shl eax, 2
movss xmm1, dword [edx*4 + 0x7516bc]
movss xmm0, dword [eax + 0x7516bc]
comiss xmm1, xmm0
jae 0x45f5cd
lea esi, [esi]
lea edi, [edi]
inc ebx
cmp ebx, esi
jle 0x45f5af
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x74]
inc edx
cmp edx, ecx
jle 0x45f583
mov ebx, dword [esp + 0x4c]
mov esi, dword [ebp + 0x20]
movss xmm0, dword [eax*4 + 0x7516bc]
mov edi, dword [eax*4 + 0x7516bc]
mov ecx, dword [0x7516c0]
subss xmm0, dword [0x7516c0]
cvtss2sd xmm0, xmm0
comisd xmm0, xmmword [0x4b5330]
jbe 0x45f695
mov eax, dword [esp + 0x5c]
comisd xmm0, xmmword [esp + 0x50]
mov dword [eax*4 + 0x751d20], ecx
lea ecx, [eax + 2]
mov dword [esp + 0x5c], ecx
mov dword [ecx*4 + 0x751d1c], edi
jbe 0x45f695
mov ecx, dword [esp + 0x58]
inc eax
inc ecx
mov dword [esp + 0x58], ecx
mov dword [ecx*4 + 0x76559c], eax
inc ebx
cmp ebx, dword [esp + 0x70]
jle 0x45f2fc
mov esi, dword [esp + 0x40]
lea eax, [esp + 0xac]
mov ebx, dword [ebp + 0x28]
xor edi, edi
cmp dword [esp + 0x5c], 0
je 0x4606fa
mov ecx, dword [esp + 0x58]
cmp ecx, 1
jne 0x45f6d7
inc ecx
mov dword [esp + 0x58], ecx
mov edx, dword [ecx*4 + 0x765598]
mov dword [ecx*4 + 0x76559c], edx
add esp, 0xffffffe8
mov edx, 0x751d20
lea ecx, [esp + 0x70]
mov dword [esp + 0xc], 0x7655a0
mov dword [esp + 0x10], eax
lea eax, [esp + 0x74]
mov dword [esp + 0x14], 0x76a7a0
call fcn.0046076c
mov eax, dword [esp + 0xac]
mov edx, eax
shr edx, 0x1f
add edx, eax
and edx, 0xfffffffe
cmp eax, edx
je 0x46039a
movss xmm0, dword [ebx]
mulss xmm0, dword [0x4b53e0]
addss xmm0, dword [esp + 0x7c]
movaps xmm1, xmm0
subss xmm1, dword [esp + 0xb8]
comiss xmm1, dword [0x4b53e4]
ja 0x45f75b
movss dword [esp + 0x7c], xmm0
jmp 0x45f2d0
mov ecx, 0x186a0
xor edx, edx
mov dword [esp + 0x48], ecx
jmp 0x45f4dd
mov eax, dword [ebp + 0x24]
movss xmm2, dword [esp + 0x78]
movss xmm1, dword [0x4b53dc]
movss xmm3, dword [eax]
subss xmm2, xmm3
andps xmm2, xmmword [0x4b5300]
comiss xmm1, xmm2
jbe 0x45f7a2
movss xmm0, dword [esp + 0xb8]
movss dword [esp + 0x7c], xmm0
addss xmm3, dword [0x4b53e8]
movss dword [esp + 0x78], xmm3
jmp 0x45f2d0
mov dword [esp + 0x40], esi
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esp + 0xb8]
mov eax, dword [esp + 0x1c]
dec eax
addss xmm0, dword [esp + 0x20]
movss dword [esp + 0xb8], xmm0
test eax, eax
mov dword [esp + 0x1c], eax
jg 0x45f255
mov ebx, dword [ebp + 0x24]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebx]
mov dword [esp + 0x78], esi
add esp, 0xffffffdc
movss xmm2, dword [ebx]
lea edi, [esp + 0x48]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0xc], 0x4b522c
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 0x720980
mov dword [esp + 0x18], 0x6efc40
mov dword [esp + 0x1c], 0x6bef00
mov dword [esp + 0x20], 0x68e1c0
movss dword [esp + 0x3c], xmm2
call fcn.004614bc
mov eax, dword [esp + 0x24]
test eax, eax
movss xmm2, dword [esp + 0x18]
mov dword [0x77a7e4], eax
jle 0x45f99f
cvtsi2ss xmm0, eax
movss dword [esp], xmm0
call sub.libmmd.dll_logf
fstp dword [esp + 0x60]
movss xmm1, dword [esp + 0x60]
movss xmm0, dword [0x4b53d8]
mulss xmm1, xmm0
mov edi, dword [esp + 0x24]
mov ecx, edi
addss xmm1, dword [0x4b53dc]
cvttss2si esi, xmm1
test esi, esi
jle 0x45f999
mov ebx, 1
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, edi
sar ecx, 1
sub eax, ecx
test eax, eax
jle 0x45f990
mov dword [esp + 0x20], ebx
mov edx, 1
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
movss xmm1, dword [edx*4 + 0x6efc3c]
lea ebx, [ecx + edx]
shl ebx, 2
mov esi, edx
movss xmm0, dword [ebx + 0x6efc3c]
comiss xmm1, xmm0
jb 0x45f97b
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ecx
mov edi, dword [esi*4 + 0x6beefc]
mov dword [esp + 0x34], edi
mov edi, dword [ebx + 0x72097c]
mov edx, dword [esi*4 + 0x72097c]
mov dword [esi*4 + 0x72097c], edi
mov edi, dword [ebx + 0x68e1bc]
mov eax, dword [esi*4 + 0x68e1bc]
mov dword [esi*4 + 0x68e1bc], edi
mov edi, dword [ebx + 0x6beefc]
mov ecx, dword [esi*4 + 0x6efc3c]
movss dword [esi*4 + 0x6efc3c], xmm0
mov dword [esi*4 + 0x6beefc], edi
mov dword [ebx + 0x68e1bc], eax
sub esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
test esi, esi
mov dword [ebx + 0x6efc3c], ecx
mov dword [ebx + 0x72097c], edx
mov dword [ebx + 0x6beefc], eax
jle 0x45f96f
mov eax, dword [esp + 0x30]
movss xmm1, dword [esi*4 + 0x6efc3c]
lea ebx, [eax + esi]
shl ebx, 2
movss xmm0, dword [ebx + 0x6efc3c]
comiss xmm1, xmm0
jae 0x45f8d7
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
inc edx
cmp edx, eax
jle 0x45f8a9
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
inc ebx
cmp ebx, esi
jle 0x45f883
movss xmm2, dword [esp + 0x78]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
movss xmm0, dword [0x4b53d4]
movss xmm5, dword [edx]
movss xmm1, dword [ecx]
subss xmm5, xmm2
addss xmm1, xmm2
addss xmm5, xmm0
subss xmm1, xmm0
mov eax, dword [ebp + 0x28]
subss xmm1, xmm5
movss xmm6, dword [eax]
addss xmm1, xmm6
divss xmm1, xmm6
cvttss2si eax, xmm1
test eax, eax
jle 0x45ffca
mov ecx, 0x186a0
xor edx, edx
mov esi, 1
movss xmm4, dword [0x4b53d8]
movd xmm7, ecx
pshufd xmm7, xmm7, 0
movss xmm3, dword [0x4b53dc]
movss xmm2, dword [0x4b53e0]
movdqa xmmword [esp + 0x40], xmm7
movss dword [esp + 0xc8], xmm5
movss dword [esp + 0x2c], xmm6
mov dword [esp + 0x6c], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, 0x2710
jg 0x460351
mov ebx, dword [esp + 0x24]
movss xmm1, dword [esp + 0xc8]
movss xmm0, dword [esp + 0x78]
movss dword [esp + 0x7c], xmm1
lea edx, [ebx - 1]
mov dword [0x77a7e8], ebx
test edx, edx
addss xmm0, xmm1
jle 0x45faa8
mov eax, 1
movss xmm1, dword [eax*4 + 0x6efc3c]
comiss xmm1, xmm0
ja 0x46034a
movss xmm1, dword [eax*4 + 0x6efc40]
comiss xmm1, xmm0
ja 0x460342
add eax, 2
cmp eax, edx
jle 0x45fa7d
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x38]
xor eax, eax
cmp edi, esi
mov dword [esp + 0x5c], eax
cmovl edi, esi
mov dword [esp + 0x58], eax
mov eax, edi
cmp ebx, edi
jl 0x460339
xor edx, edx
mov dword [esp + 0x74], edx
mov dword [esp + 0xb8], ebx
mov ebx, eax
mov dword [esp + 0x38], edi
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0x14]
lea edx, [ebx*4 + 0x72097c]
movss xmm1, dword [esp + 0xa0]
movss xmm2, dword [esi]
movss xmm0, dword [edi]
lea edi, [ebx*4 + 0x6efc3c]
subss xmm0, xmm1
addss xmm2, xmm1
movss dword [esp + 0xb0], xmm0
movss dword [esp + 0xb4], xmm2
add esp, 0xffffffd0
lea ecx, [esp + 0xe4]
lea eax, [esp + 0xa8]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xac]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
lea edx, [ebx*4 + 0x6beefc]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
lea edx, [ebx*4 + 0x68e1bc]
mov dword [esp + 0x20], edx
lea edx, [esp + 0xdc]
mov dword [esp + 0x24], edx
lea edx, [esp + 0xe0]
mov dword [esp + 0x28], 0x751860
mov dword [esp + 0x2c], 0x7516c0
call fcn.00460a9c
mov eax, dword [esp + 0xac]
test eax, eax
je 0x45fe7e
test byte [esp + 0x74], 1
jne 0x45fd13
mov edx, dword [esp + 0x3c]
mov dword [edx*4 + 0x751a00], ebx
lea edx, [edx + 1]
mov dword [0x77a7f4], edx
cmp edx, dword [esp + 0x68]
jle 0x45fcff
cmp dword [esp + 0x3c], 0
jle 0x45fcf0
cmp dword [esp + 0x3c], 0x10
jl 0x45ff40
mov edx, dword [esp + 0x3c]
xor ecx, ecx
movdqa xmm0, xmmword [esp + 0x40]
and edx, 0xfffffff0
movdqu xmm1, xmmword [ecx*4 + 0x751a04]
movdqu xmm4, xmmword [ecx*4 + 0x751a24]
movdqu xmm6, xmmword [ecx*4 + 0x751a34]
movdqa xmm2, xmm1
movdqa xmm5, xmm4
pcmpgtd xmm2, xmm0
pxor xmm0, xmm1
pand xmm2, xmm0
movdqu xmm0, xmmword [ecx*4 + 0x751a14]
pxor xmm2, xmm1
movdqa xmm3, xmm0
pcmpgtd xmm3, xmm2
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
pcmpgtd xmm5, xmm3
pxor xmm3, xmm4
pand xmm5, xmm3
movdqa xmmword [ecx*4 + 0x751a10], xmm0
pxor xmm5, xmm4
movdqa xmm0, xmm6
pcmpgtd xmm0, xmm5
pxor xmm5, xmm6
movdqa xmmword [ecx*4 + 0x751a00], xmm1
pand xmm0, xmm5
movdqa xmmword [ecx*4 + 0x751a20], xmm4
pxor xmm0, xmm6
movdqa xmmword [ecx*4 + 0x751a30], xmm6
add ecx, 0x10
cmp ecx, edx
jb 0x45fbdd
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm1, xmm0
pand xmm2, xmm1
pxor xmm2, xmm0
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm0, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
movd dword [esp + 0x6c], xmm3
cmp edx, dword [esp + 0x3c]
jae 0x45fcf9
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x3c]
mov ecx, dword [edx*4 + 0x751a04]
cmp ecx, esi
mov dword [edx*4 + 0x751a00], ecx
jge 0x45fce2
mov esi, ecx
inc edx
cmp edx, edi
jb 0x45fcce
mov dword [esp + 0x6c], esi
mov esi, dword [ebp + 0x18]
jmp 0x45fcf9
mov edx, 0x186a0
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x3c]
jmp 0x45fd07
mov dword [esp + 0x6c], 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x74], 0xffffffff
mov dword [0x77a7e0], eax
test eax, eax
jle 0x45fe20
cvtsi2ss xmm0, eax
movss dword [esp], xmm0
call sub.libmmd.dll_logf
fstp dword [esp + 0x60]
movss xmm0, dword [esp + 0x60]
mulss xmm0, dword [0x4b53d8]
mov eax, dword [esp + 0xac]
mov edi, eax
addss xmm0, dword [0x4b53dc]
cvttss2si ecx, xmm0
test ecx, ecx
jle 0x45fe20
mov dword [esp + 0x70], ebx
mov edx, 1
mov ebx, edi
mov esi, eax
shr ebx, 0x1f
add edi, ebx
sar edi, 1
sub esi, edi
test esi, esi
jle 0x45fe10
mov dword [esp + 0xc4], edx
mov ebx, 1
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xbc], eax
movss xmm1, dword [ebx*4 + 0x75185c]
lea eax, [edi + ebx]
shl eax, 2
mov edx, ebx
movss xmm0, dword [eax + 0x75185c]
comiss xmm1, xmm0
jb 0x45fdeb
mov ecx, dword [edx*4 + 0x75185c]
movss dword [edx*4 + 0x75185c], xmm0
sub edx, edi
mov dword [eax + 0x75185c], ecx
test edx, edx
jle 0x45fdeb
lea eax, [edi + edx]
shl eax, 2
movss xmm1, dword [edx*4 + 0x75185c]
movss xmm0, dword [eax + 0x75185c]
comiss xmm1, xmm0
jae 0x45fdb3
lea esi, [esi]
lea edi, [edi]
inc ebx
cmp ebx, esi
jle 0x45fd95
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xbc]
inc edx
cmp edx, ecx
jle 0x45fd66
mov ebx, dword [esp + 0x70]
mov esi, dword [ebp + 0x18]
movss xmm0, dword [eax*4 + 0x75185c]
mov edi, dword [eax*4 + 0x75185c]
mov ecx, dword [0x751860]
subss xmm0, dword [0x751860]
cvtss2sd xmm0, xmm0
comisd xmm0, xmmword [0x4b5330]
jbe 0x45fe7e
mov edx, dword [esp + 0x5c]
comisd xmm0, xmmword [esp + 0x50]
mov dword [edx*4 + 0x751d20], ecx
lea ecx, [edx + 2]
mov dword [esp + 0x5c], ecx
mov dword [ecx*4 + 0x751d1c], edi
jbe 0x45fe7e
mov ecx, dword [esp + 0x58]
inc edx
inc ecx
mov dword [esp + 0x58], ecx
mov dword [ecx*4 + 0x76559c], edx
inc ebx
cmp ebx, dword [esp + 0xb8]
jle 0x45fadf
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x5c], 0
je 0x460339
mov edx, dword [esp + 0x58]
cmp edx, 1
jne 0x45fec2
inc edx
mov dword [esp + 0x58], edx
mov eax, dword [edx*4 + 0x765598]
mov dword [edx*4 + 0x76559c], eax
add esp, 0xffffffe8
mov edx, 0x751d20
lea eax, [esp + 0xc4]
lea ecx, [esp + 0x70]
mov dword [esp + 0xc], 0x7655a0
mov dword [esp + 0x10], eax
lea eax, [esp + 0x74]
mov dword [esp + 0x14], 0x76a7a0
call fcn.0046076c
mov eax, dword [esp + 0xac]
mov edx, eax
shr edx, 0x1f
add edx, eax
and edx, 0xfffffffe
cmp eax, edx
je 0x45ffd9
mov eax, dword [ebp + 0x28]
movss xmm0, dword [eax]
mulss xmm0, dword [0x4b53e0]
addss xmm0, dword [esp + 0x7c]
movaps xmm1, xmm0
subss xmm1, dword [esp + 0xc8]
comiss xmm1, dword [0x4b53e4]
ja 0x45ff50
movss dword [esp + 0x7c], xmm0
jmp 0x45fab0
mov edx, 0x186a0
mov dword [esp + 0x6c], edx
xor edx, edx
jmp 0x45fcc0
mov eax, dword [ebp + 0x24]
movss xmm2, dword [esp + 0x78]
movss xmm1, dword [0x4b53dc]
movss xmm3, dword [eax]
subss xmm2, xmm3
andps xmm2, xmmword [0x4b5300]
comiss xmm1, xmm2
jbe 0x45ff97
movss xmm0, dword [esp + 0xc8]
movss dword [esp + 0x7c], xmm0
addss xmm3, dword [0x4b53e8]
movss dword [esp + 0x78], xmm3
jmp 0x45fab0
mov dword [esp + 0x38], edi
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esp + 0xc8]
mov eax, dword [esp + 0x28]
dec eax
addss xmm0, dword [esp + 0x2c]
movss dword [esp + 0xc8], xmm0
test eax, eax
mov dword [esp + 0x28], eax
jg 0x45fa3a
add esp, 0x194
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x3c
mov edx, dword [ebp + 0x24]
test eax, eax
mov dword [esp + 0x38], edi
mov dword [0x77a7e0], eax
mov ecx, dword [edx]
mov dword [esp + 0x78], ecx
jle 0x4600dc
cvtsi2ss xmm0, eax
movss dword [esp], xmm0
call sub.libmmd.dll_logf
fstp dword [esp + 0x60]
movss xmm0, dword [esp + 0x60]
mulss xmm0, dword [0x4b53d8]
mov eax, dword [esp + 0xac]
mov esi, eax
addss xmm0, dword [0x4b53dc]
cvttss2si edi, xmm0
test edi, edi
jle 0x4600dc
mov ebx, 1
mov edx, esi
mov ecx, eax
shr edx, 0x1f
add esi, edx
sar esi, 1
sub ecx, esi
test ecx, ecx
jle 0x4600d3
mov dword [esp + 0x34], ebx
mov edx, 1
mov dword [esp + 0x30], edi
mov dword [esp + 0xcc], eax
movss xmm1, dword [edx*4 + 0x76a79c]
lea eax, [esi + edx]
shl eax, 2
mov ebx, edx
movss xmm0, dword [eax + 0x76a79c]
comiss xmm1, xmm0
jb 0x4600b4
mov edi, dword [ebx*4 + 0x76a79c]
movss dword [ebx*4 + 0x76a79c], xmm0
sub ebx, esi
mov dword [eax + 0x76a79c], edi
test ebx, ebx
jle 0x4600b4
lea eax, [esi + ebx]
shl eax, 2
movss xmm1, dword [ebx*4 + 0x76a79c]
movss xmm0, dword [eax + 0x76a79c]
comiss xmm1, xmm0
jae 0x46007c
lea esi, [esi]
lea edi, [edi]
inc edx
cmp edx, ecx
jle 0x46005e
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0xcc]
inc ebx
cmp ebx, edi
jle 0x460035
test eax, eax
jle 0x45ffa1
mov ecx, dword [ebp + 0x30]
mov ebx, 1
mov edx, dword [ebp + 0x3c]
mov edi, dword [ecx]
test edi, edi
mov edx, dword [edx]
jne 0x460141
movss xmm0, dword [esp + 0xc8]
mov edi, dword [ebp + 0x40]
mov ecx, dword [ebx*4 + 0x76a79c]
mov dword [edi + edx*8], ecx
movss dword [edi + edx*8 + 4], xmm0
add edx, 2
mov esi, dword [ebx*4 + 0x76a7a0]
add ebx, 2
cmp ebx, eax
mov dword [edi + edx*8 - 8], esi
movss dword [edi + edx*8 - 4], xmm0
jle 0x460103
mov eax, dword [ebp + 0x3c]
movss dword [esp + 0xc8], xmm0
mov dword [eax], edx
jmp 0x45ffa1
mov dword [esp + 0xcc], eax
lea esi, [esp + 0x80]
lea ecx, [esp + 0x138]
mov dword [esp + 0x80], 0
mov dword [esp + 0x130], 0x47c34f80
push 0x20
lea eax, [esp + 0x134]
push eax
push 0x4b5238
push 0xa384ff00
push edi
push esi
call sub.libifcoremd.dll_for_write_seq
mov dword [esp + 0x150], 0x47c34f80
lea eax, [esp + 0x150]
push eax
push 0x4b5240
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x164], 0x47c34f80
lea eax, [esp + 0x164]
push eax
push 0x4b5248
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
mov eax, dword [ebx*4 + 0x76a79c]
mov dword [esp + 0xb0], 0
mov dword [esp + 0x178], eax
push 0x20
lea edx, [esp + 0x17c]
push edx
push 0x4b5250
push 0xa384ff00
push edi
push esi
call sub.libifcoremd.dll_for_write_seq
movss xmm0, dword [esp + 0x110]
lea eax, [esp + 0x198]
movss dword [esp + 0x198], xmm0
push eax
push 0x4b5258
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x1ac], 0
lea eax, [esp + 0x1ac]
push eax
push 0x4b5260
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
mov eax, dword [ebx*4 + 0x76a7a0]
mov dword [esp + 0xe0], 0
mov dword [esp + 0x1c0], eax
push 0x20
lea edx, [esp + 0x1c4]
push edx
push 0x4b5268
push 0xa384ff00
push edi
push esi
call sub.libifcoremd.dll_for_write_seq
add esp, 0x78
movss xmm0, dword [esp + 0xc8]
lea eax, [esp + 0x168]
movss dword [esp + 0x168], xmm0
push eax
push 0x4b5270
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x17c], 0
lea eax, [esp + 0x17c]
push eax
push 0x4b5278
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x98], 0
mov dword [esp + 0x190], 0x47c34f80
push 0x20
lea eax, [esp + 0x194]
push eax
push 0x4b5280
push 0xa384ff00
push edi
push esi
call sub.libifcoremd.dll_for_write_seq
mov dword [esp + 0x1b0], 0x47c34f80
lea eax, [esp + 0x1b0]
push eax
push 0x4b5288
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x1c4], 0x47c34f80
lea eax, [esp + 0x1c4]
push eax
push 0x4b5290
push esi
call sub.libifcoremd.dll_for_write_seq_xmit
add esp, 0x48
add ebx, 2
cmp ebx, dword [esp + 0xcc]
jle 0x460156
jmp 0x45ffa1
mov dword [esp + 0x38], edi
jmp 0x45ffa1
lea ebx, [eax + 1]
jmp 0x45faa8
mov ebx, eax
jmp 0x45faa8
mov dword [esp + 0x80], 0
lea edx, [esp + 0x80]
mov dword [esp + 0x18], 0x1c
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], str._Calculation_in_progress_...
push 0x20
push eax
push 0x4b5230
push 0xa384ff00
push 0xffffffffffffffff
push edx
call sub.libifcoremd.dll_for_write_seq_lis
add esp, 0x18
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x45fa4e
mov edx, dword [ebp + 0x24]
test eax, eax
mov dword [esp + 0x40], esi
mov dword [0x77a7e0], eax
mov ecx, dword [edx]
mov dword [esp + 0x78], ecx
jle 0x46049d
cvtsi2ss xmm0, eax
movss dword [esp], xmm0
call sub.libmmd.dll_logf
fstp dword [esp + 0x60]
movss xmm0, dword [esp + 0x60]
mulss xmm0, dword [0x4b53d8]
mov eax, dword [esp + 0xac]
mov esi, eax
addss xmm0, dword [0x4b53dc]
cvttss2si edi, xmm0
test edi, edi
jle 0x46049d
mov ebx, 1
mov edx, esi
mov ecx, eax
shr edx, 0x1f
add esi, edx
sar esi, 1
sub ecx, esi
test ecx, ecx
jle 0x460494
mov dword [esp + 0x2c], ebx
mov edx, 1
mov dword [esp + 0x28], edi
mov dword [esp + 0xbc], eax
movss xmm1, dword [edx*4 + 0x76a79c]
lea eax, [esi + edx]
shl eax, 2
mov ebx, edx
movss xmm0, dword [eax + 0x76a79c]
comiss xmm1, xmm0
jb 0x460475
mov edi, dword [ebx*4 + 0x76a79c]
movss dword [ebx*4 + 0x76a79c], xmm0
sub ebx, esi
mov dword [eax + 0x76a79c], edi
test ebx, ebx
jle 0x460475
lea eax, [esi + ebx]
shl eax, 2
movss xmm1, dword [ebx*4 + 0x76a79c]
movss xmm0, dword [eax + 0x76a79c]
comiss xmm1, xmm0
jae 0x46043d
lea esi, [esi]
lea edi, [edi]
inc edx
cmp edx, ecx
jle 0x46041f
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0xbc]
inc ebx
cmp ebx, edi
jle 0x4603f6
test eax, eax
jle 0x45f7ac
mov ecx, dword [ebp + 0x2c]
mov ebx, 1
mov edx, dword [ebp + 0x34]
mov esi, dword [ecx]
test esi, esi
mov edx, dword [edx]
jne 0x460502
movss xmm0, dword [esp + 0xb8]
mov edi, dword [ebp + 0x38]
mov ecx, dword [ebx*4 + 0x76a79c]
movss dword [edi + edx*8], xmm0
mov dword [edi + edx*8 + 4], ecx
add edx, 2
mov esi, dword [ebx*4 + 0x76a7a0]
add ebx, 2
cmp ebx, eax
movss dword [edi + edx*8 - 8], xmm0
mov dword [edi + edx*8 - 4], esi
jle 0x4604c4
mov eax, dword [ebp + 0x34]
movss dword [esp + 0xb8], xmm0
mov dword [eax], edx
jmp 0x45f7ac
mov dword [esp + 0xbc], eax
lea ecx, [esp + 0xe8]
lea edi, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp + 0xd0], 0x47c34f80
push 0x20
lea eax, [esp + 0xd4]
push eax
push 0x4b51cc
push 0xa384ff00
push esi
push edi
call sub.libifcoremd.dll_for_write_seq
mov dword [esp + 0xf0], 0x47c34f80
lea eax, [esp + 0xf0]
push eax
push 0x4b51d4
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x104], 0x47c34f80
lea eax, [esp + 0x104]
push eax
push 0x4b51dc
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
movss xmm0, dword [esp + 0xe8]
mov dword [esp + 0xb0], 0
movss dword [esp + 0x118], xmm0
push 0x20
lea eax, [esp + 0x11c]
push eax
push 0x4b51e4
push 0xa384ff00
push esi
push edi
call sub.libifcoremd.dll_for_write_seq
mov eax, dword [ebx*4 + 0x76a79c]
lea edx, [esp + 0x138]
mov dword [esp + 0x138], eax
push edx
push 0x4b51ec
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x14c], 0
lea eax, [esp + 0x14c]
push eax
push 0x4b51f4
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
movss xmm0, dword [esp + 0x118]
mov dword [esp + 0xe0], 0
movss dword [esp + 0x160], xmm0
push 0x20
lea eax, [esp + 0x164]
push eax
push 0x4b51fc
push 0xa384ff00
push esi
push edi
call sub.libifcoremd.dll_for_write_seq
add esp, 0x78
mov eax, dword [ebx*4 + 0x76a7a0]
lea edx, [esp + 0x108]
mov dword [esp + 0x108], eax
push edx
push 0x4b5204
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x11c], 0
lea eax, [esp + 0x11c]
push eax
push 0x4b520c
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x98], 0
mov dword [esp + 0x130], 0x47c34f80
push 0x20
lea eax, [esp + 0x134]
push eax
push 0x4b5214
push 0xa384ff00
push esi
push edi
call sub.libifcoremd.dll_for_write_seq
mov dword [esp + 0x150], 0x47c34f80
lea eax, [esp + 0x150]
push eax
push 0x4b521c
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
mov dword [esp + 0x164], 0x47c34f80
lea eax, [esp + 0x164]
push eax
push 0x4b5224
push edi
call sub.libifcoremd.dll_for_write_seq_xmit
add esp, 0x48
add ebx, 2
cmp ebx, dword [esp + 0xbc]
jle 0x460517
jmp 0x45f7ac
mov dword [esp + 0x40], esi
jmp 0x45f7ac
lea ecx, [eax + 1]
jmp 0x45f2c3
mov ecx, eax
jmp 0x45f2c3
mov dword [esp + 0x80], 0
lea edx, [esp + 0x80]
mov dword [esp + 0x10], 0x1c
lea eax, [esp + 0x10]
mov dword [esp + 0x14], 0x4b5390
push 0x20
push eax
push 0x4b51c4
push 0xa384ff00
push 0xffffffffffffffff
push edx
call sub.libifcoremd.dll_for_write_seq_lis
add esp, 0x18
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x45f269