Function at 0x413fe0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x414010
test dword [0x87ed4c], 0xffffffff
jne 0x414d20
call fcn.007663a0
jmp fcn.00413fe0
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0xd4
mov ebx, ecx
mov edi, eax
mov dword [esp + 0xc4], edx
lea eax, [ebx*4 + 4]
imul eax, dword [edi + 0x14]
lea esi, [eax + ebx*4 + 4]
call fcn.0058d940
test eax, eax
jne 0x41422c
mov eax, esi
call fcn.0041ebd4
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
je 0x41422c
mov edx, dword [edi + 0x14]
mov eax, ebx
imul eax, edx
add edx, eax
mov eax, dword [esp + 0xa0]
lea ecx, [eax + edx*4]
mov dword [esp + 0x3c], ecx
push esi
push 0
push eax
call fcn.00766740
add esp, 0xc
mov eax, dword [edi + 0x14]
test eax, eax
jle 0x41429a
mov dword [esp + 0x20], 0
mov esi, ebx
shr esi, 0x1f
add esi, ebx
sar esi, 1
mov ecx, ebx
sub ecx, esi
lea edx, [esi*4]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0xc0], edi
mov edi, ebx
imul edi, esi
add edi, eax
mov eax, dword [esp + 0xa0]
lea edi, [eax + edi*4]
mov dword [eax + esi*4], edi
test ebx, ebx
jle 0x4140f5
mov ecx, eax
xor eax, eax
mov edx, dword [ecx + esi*4]
mov dword [edx + eax*4], eax
inc eax
cmp eax, ebx
jl 0x4140e0
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + esi*4]
cmp ebx, 1
jle 0x414280
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xc4]
lea eax, [edi + ecx*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov edx, edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc0]
call fcn.004159a0
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc0]
call fcn.004159a0
push dword [esp + 0x24]
push edi
push dword [esp + 0x44]
call fcn.007666b0
add esp, 0xc
mov ecx, dword [esp + 0xc4]
xor edx, edx
xor eax, eax
lea ecx, [ecx + esi*8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0xa4], ebx
cmp edx, dword [esp + 0x40]
jl 0x41419b
cmp eax, dword [esp + 0x2c]
jge 0x414275
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0xc0]
mov ecx, dword [esi + edx*4]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x38], ecx
lea esi, [ecx + ecx*2]
shl esi, 4
lea ecx, [ebx + ebx*2]
shl ecx, 4
cmp dword [edi + 0x258], 0
jne 0x4141f3
mov edi, dword [esp + 0x28]
movss xmm0, dword [edi + esi + 8]
movss xmm1, dword [edi + esi + 0xc]
cvtps2pd xmm0, xmm0
movss xmm3, dword [edi + ecx + 8]
movss xmm5, dword [edi + ecx + 0xc]
cvtps2pd xmm2, xmm1
cvtps2pd xmm4, xmm3
cvtps2pd xmm6, xmm5
jmp 0x41420f
mov edi, dword [esp + 0x28]
cvtsi2sd xmm0, dword [edi + esi + 8]
cvtsi2sd xmm2, dword [edi + esi + 0xc]
cvtsi2sd xmm4, dword [edi + ecx + 8]
cvtsi2sd xmm6, dword [edi + ecx + 0xc]
cmp edx, dword [esp + 0x40]
jne 0x41423e
mov esi, dword [esp + 0x30]
lea ecx, [eax*4]
lea edi, [ecx + edx*4]
mov dword [esi + edi], ebx
inc eax
jmp 0x41418b
mov eax, 7
add esp, 0xd4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp eax, dword [esp + 0x2c]
jne 0x41425f
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x38]
lea ecx, [eax*4]
lea edi, [ecx + edx*4]
mov dword [esi + edi], ebx
inc edx
jmp 0x41418b
comisd xmm4, xmm0
ja 0x414244
ucomisd xmm0, xmm4
jne 0x414215
jp 0x414215
comisd xmm6, xmm2
ja 0x414244
jmp 0x414215
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0xc0]
inc esi
mov eax, dword [eax + 0x14]
cmp esi, eax
jl 0x4140c4
mov edi, dword [esp + 0xc0]
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], edx
test eax, eax
jle 0x414940
mov esi, dword [edi + 0x10]
mov edx, dword [edi + 0x18]
mov dword [esp + 0x3c], esi
xorps xmm3, xmm3
xorps xmm1, xmm1
xorps xmm0, xmm0
lea ecx, [ebx - 2]
mov dword [esp + 0x20], edx
xor edx, edx
xor esi, esi
mov dword [esp + 0xac], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0xc0], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
inc esi
lea eax, [edx - 4]
cdq
idiv ebx
xorps xmm2, xmm2
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, dword [esp + 0xa4]
sar ecx, 0x1f
sub edx, ecx
sub eax, edx
cmp edx, eax
jg 0x41490c
movss dword [esp + 0x20], xmm3
mov ecx, edx
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0xc0]
mov dword [esp + 0xa8], esi
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa0]
mov esi, dword [eax + ebx*4 - 4]
mov eax, dword [esi]
lea eax, [eax + eax*2]
shl eax, 4
mov ebx, dword [esp + 0xc4]
movsd xmm3, qword [eax + ebx]
movsd qword [esp + 0x40], xmm3
movsd xmm4, qword [eax + ebx + 8]
movsd qword [esp + 0x48], xmm4
movsd xmm5, qword [eax + ebx + 0x10]
movsd qword [esp + 0x50], xmm5
movsd xmm6, qword [eax + ebx + 0x18]
movsd qword [esp + 0x58], xmm6
movsd xmm7, qword [eax + ebx + 0x20]
movsd qword [esp + 0x60], xmm7
movsd xmm3, qword [eax + ebx + 0x28]
movsd qword [esp + 0x68], xmm3
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa0]
mov esi, dword [eax + ebx*4 - 4]
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xc4]
mov eax, dword [esi + eax*4 - 4]
lea eax, [eax + eax*2]
shl eax, 4
movsd xmm3, qword [eax + ebx]
movsd qword [esp + 0x70], xmm3
movsd xmm4, qword [eax + ebx + 8]
movsd qword [esp + 0x78], xmm4
movsd xmm5, qword [eax + ebx + 0x10]
movsd qword [esp + 0x80], xmm5
movsd xmm6, qword [eax + ebx + 0x18]
movsd qword [esp + 0x88], xmm6
movsd xmm7, qword [eax + ebx + 0x20]
movsd qword [esp + 0x90], xmm7
movsd xmm3, qword [eax + ebx + 0x28]
movsd qword [esp + 0x98], xmm3
mov eax, dword [edi + 0x14]
mov dword [esp + 0x38], eax
lea esi, [eax + eax]
lea ebx, [eax + eax + 1]
mov edx, ebx
shr edx, 0x1f
add edx, ebx
sar edx, 1
cmp dword [esp + 0xa4], 2
jle 0x414d0d
mov eax, dword [edi + 0x258]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa8]
mov ebx, dword [ebx + eax*4 - 4]
mov dword [esp + 0x34], 0
mov edi, dword [esp + 0x34]
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xc8]
lea ebx, [edi + 1]
mov edi, dword [eax + edi*4 + 4]
lea eax, [edi + edi*2]
shl eax, 4
add eax, dword [esp + 0xc4]
cmp ecx, ebx
jle 0x41456e
test edx, edx
jne 0x4144ff
test esi, esi
jle 0x414c71
xor edi, edi
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xbc]
movss xmm3, dword [esp + edi*8 + 0x48]
minss xmm3, dword [eax + edi*8 + 8]
movss xmm4, dword [eax + edi*8 + 0xc]
maxss xmm4, dword [esp + edi*8 + 0x4c]
movss dword [esp + edi*8 + 0x48], xmm3
movss dword [esp + edi*8 + 0x4c], xmm4
inc edi
cmp edi, ecx
jb 0x4144bf
mov ecx, dword [esp + 0xb4]
cmp ebx, dword [esp + 0xac]
mov edi, ebx
jb 0x414480
jmp 0x414635
test esi, esi
jle 0x414c98
mov edx, dword [esp + 0xbc]
xor edi, edi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], ecx
mov ecx, dword [eax + edi*8 + 8]
mov esi, dword [esp + edi*8 + 0x48]
cmp ecx, esi
cmovl esi, ecx
mov ecx, dword [eax + edi*8 + 0xc]
mov dword [esp + edi*8 + 0x48], esi
mov esi, dword [esp + edi*8 + 0x4c]
cmp ecx, esi
cmovge esi, ecx
mov dword [esp + edi*8 + 0x4c], esi
inc edi
cmp edi, edx
jb 0x41451e
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
cmp ebx, dword [esp + 0xac]
mov edi, ebx
jb 0x414480
jmp 0x414635
test edx, edx
jne 0x4145cb
test esi, esi
jle 0x414cbf
xor edi, edi
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xbc]
movss xmm3, dword [esp + edi*8 + 0x78]
minss xmm3, dword [eax + edi*8 + 8]
movss xmm4, dword [eax + edi*8 + 0xc]
maxss xmm4, dword [esp + edi*8 + 0x7c]
movss dword [esp + edi*8 + 0x78], xmm3
movss dword [esp + edi*8 + 0x7c], xmm4
inc edi
cmp edi, ecx
jb 0x41458a
mov ecx, dword [esp + 0xb4]
cmp ebx, dword [esp + 0xac]
mov edi, ebx
jb 0x414480
jmp 0x414635
test esi, esi
jle 0x414ce6
mov edx, dword [esp + 0xbc]
xor edi, edi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], ecx
mov ecx, dword [eax + edi*8 + 8]
mov esi, dword [esp + edi*8 + 0x78]
cmp ecx, esi
cmovl esi, ecx
mov ecx, dword [eax + edi*8 + 0xc]
mov dword [esp + edi*8 + 0x78], esi
mov esi, dword [esp + edi*8 + 0x7c]
cmp ecx, esi
cmovge esi, ecx
mov dword [esp + edi*8 + 0x7c], esi
inc edi
cmp edi, edx
jb 0x4145ea
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
cmp ebx, dword [esp + 0xac]
mov edi, ebx
jb 0x414480
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xc0]
cmp dword [edi + 0x258], 0
jne 0x414684
xorps xmm4, xmm4
test edx, edx
jbe 0x4146b7
xor eax, eax
movss xmm5, dword [esp + eax*8 + 0x4c]
movss xmm6, dword [esp + eax*8 + 0x48]
cvtps2pd xmm3, xmm5
xorps xmm5, xmm5
movss xmm5, xmm4
inc eax
cvtps2pd xmm7, xmm6
subsd xmm3, xmm7
cvtps2pd xmm4, xmm5
addsd xmm3, xmm4
cvtsd2ss xmm4, xmm3
cmp eax, edx
jb 0x414655
jmp 0x4146b7
xorps xmm4, xmm4
test edx, edx
jbe 0x4146b7
xor eax, eax
cvtsi2sd xmm5, dword [esp + eax*8 + 0x48]
xorps xmm3, xmm3
cvtsi2sd xmm3, dword [esp + eax*8 + 0x4c]
xorps xmm6, xmm6
movss xmm6, xmm4
subsd xmm3, xmm5
cvtps2pd xmm4, xmm6
inc eax
addsd xmm3, xmm4
cvtsd2ss xmm4, xmm3
cmp eax, edx
jb 0x41468d
addss xmm2, xmm4
test esi, esi
jle 0x414d15
cmp dword [edi + 0x258], 0
jne 0x414708
xorps xmm4, xmm4
test edx, edx
ja 0x4146d7
test esi, esi
jmp 0x414741
xor eax, eax
movss xmm5, dword [esp + eax*8 + 0x7c]
movss xmm6, dword [esp + eax*8 + 0x78]
cvtps2pd xmm3, xmm5
xorps xmm5, xmm5
movss xmm5, xmm4
inc eax
cvtps2pd xmm7, xmm6
subsd xmm3, xmm7
cvtps2pd xmm4, xmm5
addsd xmm3, xmm4
cvtsd2ss xmm4, xmm3
cmp eax, edx
jb 0x4146d9
jmp 0x41473f
xorps xmm4, xmm4
test edx, edx
ja 0x414713
test esi, esi
jmp 0x414741
xor eax, eax
cvtsi2sd xmm5, dword [esp + eax*8 + 0x78]
xorps xmm3, xmm3
cvtsi2sd xmm3, dword [esp + eax*8 + 0x7c]
xorps xmm6, xmm6
movss xmm6, xmm4
subsd xmm3, xmm5
cvtps2pd xmm4, xmm6
inc eax
addsd xmm3, xmm4
cvtsd2ss xmm4, xmm3
cmp eax, edx
jb 0x414715
test esi, esi
movss xmm3, dword [0x78d05c]
addss xmm2, xmm4
jle 0x414c61
mov eax, dword [edi + 0x258]
xor ebx, ebx
test eax, eax
jne 0x41478d
movss xmm6, dword [esp + ebx*8 + 0x78]
movss xmm4, dword [esp + ebx*8 + 0x48]
movss xmm5, dword [esp + ebx*8 + 0x7c]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm4
movss xmm4, dword [esp + ebx*8 + 0x4c]
maxsd xmm6, xmm7
cvtps2pd xmm5, xmm5
cvtps2pd xmm4, xmm4
minsd xmm4, xmm5
jmp 0x4147ad
cvtsi2sd xmm6, dword [esp + ebx*8 + 0x78]
cvtsi2sd xmm4, dword [esp + ebx*8 + 0x48]
cvtsi2sd xmm5, dword [esp + ebx*8 + 0x7c]
maxsd xmm6, xmm4
cvtsi2sd xmm4, dword [esp + ebx*8 + 0x4c]
minsd xmm4, xmm5
comisd xmm6, xmm4
ja 0x414c59
xorps xmm5, xmm5
movss xmm5, xmm3
cvtps2pd xmm3, xmm5
subsd xmm4, xmm6
mulsd xmm3, xmm4
inc ebx
cvtsd2ss xmm3, xmm3
cmp ebx, edx
jb 0x41475b
cmp dword [edi + 0x258], 0
jne 0x414818
movss xmm6, dword [0x78d05c]
test edx, edx
jbe 0x414853
xor ebx, ebx
xorps xmm7, xmm7
movss xmm7, xmm6
movss xmm6, dword [esp + ebx*8 + 0x4c]
cvtps2pd xmm5, xmm7
cvtps2pd xmm4, xmm6
movss xmm6, dword [esp + ebx*8 + 0x48]
inc ebx
cvtps2pd xmm7, xmm6
subsd xmm4, xmm7
mulsd xmm5, xmm4
cvtsd2ss xmm6, xmm5
cmp ebx, edx
jb 0x4147e9
jmp 0x414853
movss xmm6, dword [0x78d05c]
test edx, edx
jbe 0x414853
xor ebx, ebx
xorps xmm4, xmm4
movss xmm4, xmm6
cvtps2pd xmm5, xmm4
xorps xmm7, xmm7
cvtsi2sd xmm7, dword [esp + ebx*8 + 0x4c]
xorps xmm6, xmm6
cvtsi2sd xmm6, dword [esp + ebx*8 + 0x48]
inc ebx
subsd xmm7, xmm6
mulsd xmm5, xmm7
cvtsd2ss xmm6, xmm5
cmp ebx, edx
jb 0x414826
movss xmm5, dword [0x78d05c]
xor ebx, ebx
movss dword [esp + 0x28], xmm1
test eax, eax
jne 0x41487b
movss xmm4, dword [esp + ebx*8 + 0x7c]
movss xmm1, dword [esp + ebx*8 + 0x78]
cvtps2pd xmm4, xmm4
cvtps2pd xmm1, xmm1
jmp 0x414887
cvtsi2sd xmm4, dword [esp + ebx*8 + 0x7c]
cvtsi2sd xmm1, dword [esp + ebx*8 + 0x78]
xorps xmm7, xmm7
movss xmm7, xmm5
cvtps2pd xmm5, xmm7
subsd xmm4, xmm1
mulsd xmm5, xmm4
inc ebx
cvtsd2ss xmm5, xmm5
cmp ebx, edx
jb 0x414863
movss xmm1, dword [esp + 0x28]
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 0x18]
addss xmm6, xmm5
mov dword [esp + 0x3c], eax
lea eax, [eax - 4]
cdq
idiv ebx
mov esi, eax
mov eax, 0x55555556
imul esi
sar esi, 0x1f
sub edx, esi
cmp ecx, edx
je 0x4148df
comiss xmm0, xmm3
ja 0x4148df
ucomiss xmm3, xmm0
jne 0x4148e9
jp 0x4148e9
jmp 0x414c4b
mov dword [esp + 0x24], ecx
movaps xmm0, xmm3
movaps xmm1, xmm6
inc ecx
neg edx
add edx, dword [esp + 0xa4]
cmp ecx, edx
jle 0x414336
movss xmm3, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0xa8]
cmp esi, 1
je 0x414916
comiss xmm3, xmm2
jbe 0x414924
mov eax, dword [esp + 0x24]
lea edi, [esi - 1]
movaps xmm3, xmm2
mov dword [esp + 0x30], eax
cmp esi, dword [esp + 0x38]
jl 0x4142ef
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0xc0]
mov edx, dword [ebp + 0x1c]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x2c]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi]
lea ecx, [eax + eax*2]
shl ecx, 4
mov esi, dword [esp + 0xc4]
movsd xmm0, qword [ecx + esi]
movsd qword [edx], xmm0
movsd xmm1, qword [ecx + esi + 8]
movsd qword [edx + 8], xmm1
movsd xmm2, qword [ecx + esi + 0x10]
movsd qword [edx + 0x10], xmm2
movsd xmm3, qword [ecx + esi + 0x18]
movsd qword [edx + 0x18], xmm3
movsd xmm4, qword [ecx + esi + 0x20]
movsd qword [edx + 0x20], xmm4
movsd xmm5, qword [ecx + esi + 0x28]
movsd qword [edx + 0x28], xmm5
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x2c]
mov ecx, dword [ecx + esi*4]
mov esi, dword [esp + 0x30]
mov ecx, dword [ecx + esi*4]
lea esi, [ecx + ecx*2]
shl esi, 4
mov ecx, dword [esp + 0xc4]
movsd xmm0, qword [esi + ecx]
movsd qword [eax], xmm0
movsd xmm1, qword [esi + ecx + 8]
movsd qword [eax + 8], xmm1
movsd xmm2, qword [esi + ecx + 0x10]
movsd qword [eax + 0x10], xmm2
movsd xmm3, qword [esi + ecx + 0x18]
movsd qword [eax + 0x18], xmm3
movsd xmm4, qword [esi + ecx + 0x20]
movsd qword [eax + 0x20], xmm4
movsd xmm5, qword [esi + ecx + 0x28]
movsd qword [eax + 0x28], xmm5
test ebx, ebx
jle 0x414c30
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x28], 0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0xc0], edi
mov dword [esp + 0xa4], ebx
xor edi, edi
mov ebx, 1
cmp esi, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
cmovl edi, ebx
mov ebx, dword [esp + 0x54]
test edi, edi
cmovne ebx, dword [esp + 0x40]
cmovne eax, dword [esp + 0x48]
mov edi, dword [esp + 0xa0]
mov edx, dword [edi + ecx*4]
mov edi, dword [edx + esi*4]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x3c], eax
lea eax, [edi + edi*2]
shl eax, 4
add eax, dword [esp + 0xc4]
mov edi, dword [ecx + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x10]
add eax, 0xfffffffc
cdq
idiv edi
mov edx, dword [ebx + 0x18]
movzx ecx, byte [edx + 2]
mov dword [esp + 0x50], edx
shl ecx, 8
movzx edx, byte [edx + 3]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
add edx, ecx
cmp edx, eax
jge 0x414b89
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x50]
imul edx, edi
mov edi, dword [esp + 0x4c]
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov dword [esp + 0x24], eax
shr eax, 0x18
mov byte [ebx + edx + 4], al
mov eax, dword [esp + 0x24]
add edx, ebx
mov ebx, eax
shr eax, 0x10
mov byte [edx + 5], al
mov eax, ebx
shr ebx, 8
mov byte [edx + 6], bl
mov ebx, ecx
shr ebx, 0x18
mov byte [edx + 7], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 8], bl
mov ebx, ecx
shr ebx, 8
mov byte [edx + 9], al
mov byte [edx + 0xa], bl
mov ebx, dword [esp + 0x20]
mov byte [edx + 0xb], cl
mov ecx, dword [esp + 0xc0]
mov edi, dword [ecx + 0x14]
add edi, edi
test edi, edi
jle 0x414b68
mov edi, dword [esp + 0x4c]
xor eax, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], esi
mov esi, ecx
inc eax
mov ecx, dword [edi + eax*4 + 4]
mov ebx, ecx
shr ebx, 0x18
mov byte [edx + eax*4 + 8], bl
mov ebx, ecx
shr ebx, 0x10
mov byte [edx + eax*4 + 9], bl
mov ebx, ecx
shr ebx, 8
mov byte [edx + eax*4 + 0xa], bl
mov byte [edx + eax*4 + 0xb], cl
mov ecx, dword [esi + 0x14]
add ecx, ecx
cmp eax, ecx
jl 0x414b33
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov ecx, dword [ebx + 0x18]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
lea eax, [edi + eax + 1]
mov edx, eax
shr edx, 8
mov byte [ecx + 2], dl
mov byte [ecx + 3], al
mov dword [ebx + 0x14], 1
mov edx, dword [esp + 0xc0]
mov ebx, dword [edx + 0x14]
lea ecx, [ebx + ebx]
lea eax, [ebx + ebx + 1]
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
cmp dword [edx + 0x258], 0
jne 0x414be5
test ecx, ecx
jle 0x414c22
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
xor eax, eax
movss xmm0, dword [ecx + eax*8 + 8]
minss xmm0, dword [edx + eax*8 + 8]
movss xmm1, dword [edx + eax*8 + 0xc]
maxss xmm1, dword [ecx + eax*8 + 0xc]
movss dword [ecx + eax*8 + 8], xmm0
movss dword [ecx + eax*8 + 0xc], xmm1
inc eax
cmp eax, ebx
jb 0x414bba
jmp 0x414c22
test ecx, ecx
jle 0x414c22
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x28], esi
mov esi, dword [edx + ecx*8 + 8]
mov edi, dword [eax + ecx*8 + 8]
cmp esi, edi
cmovl edi, esi
mov esi, dword [eax + ecx*8 + 0xc]
mov dword [edx + ecx*8 + 8], edi
mov edi, dword [edx + ecx*8 + 0xc]
cmp esi, edi
cmovge edi, esi
mov dword [edx + ecx*8 + 0xc], edi
inc ecx
cmp ecx, ebx
jb 0x414bf7
mov esi, dword [esp + 0x28]
inc esi
cmp esi, dword [esp + 0xa4]
jb 0x414a3d
mov eax, dword [esp + 0xa0]
call fcn.004c69c4
xor eax, eax
add esp, 0xd4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
comiss xmm1, xmm6
ja 0x4148df
jmp 0x4148e9
xorps xmm3, xmm3
jmp 0x4147d2
movss xmm6, dword [0x78d05c]
movaps xmm5, xmm6
jmp 0x4148a8
mov edi, ebx
cmp ebx, dword [esp + 0xac]
jb 0x414480
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xc0]
xorps xmm4, xmm4
test esi, esi
jmp 0x414741
mov edi, ebx
cmp ebx, dword [esp + 0xac]
jb 0x414480
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xc0]
xorps xmm4, xmm4
test esi, esi
jmp 0x414741
mov edi, ebx
cmp ebx, dword [esp + 0xac]
jb 0x414480
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xc0]
xorps xmm4, xmm4
test esi, esi
jmp 0x414741
mov edi, ebx
cmp ebx, dword [esp + 0xac]
jb 0x414480
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xc0]
xorps xmm4, xmm4
test esi, esi
jmp 0x414741
test esi, esi
jg 0x414643
xorps xmm4, xmm4
jmp 0x414741
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xcc
mov ebx, ecx
mov dword [esp + 0xc4], edx
mov esi, eax
lea eax, [ebx*4 + 4]
imul eax, dword [esi + 0x14]
lea edi, [eax + ebx*4 + 4]
call fcn.0058d940
test eax, eax
jne 0x414f2d
mov eax, edi
call fcn.0041ebd4
mov dword [esp + 0x98], eax
cmp dword [esp + 0x98], 0
je 0x414f2d
mov edx, dword [esi + 0x14]
mov eax, ebx
imul eax, edx
add edx, eax
mov eax, dword [esp + 0x98]
lea ecx, [eax + edx*4]
mov dword [esp + 0x34], ecx
push edi
push 0
push eax
call fcn.00766740
add esp, 0xc
mov eax, dword [esi + 0x14]
test eax, eax
jle 0x414fb4
mov dword [esp + 0x18], 0
mov edi, ebx
shr edi, 0x1f
add edi, ebx
sar edi, 1
mov ecx, ebx
sub ecx, edi
lea edx, [edi*4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x18]
mov edi, ebx
imul edi, esi
add edi, eax
mov eax, dword [esp + 0x98]
lea edi, [eax + edi*4]
mov dword [eax + esi*4], edi
test ebx, ebx
jle 0x414e0a
xor eax, eax
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + esi*4]
mov dword [edx + eax*4], eax
inc eax
cmp eax, ebx
jl 0x414df5
mov eax, dword [esp + 0x98]
mov edi, dword [eax + esi*4]
cmp ebx, 1
jle 0x414f9a
mov ecx, dword [esp + 0x38]
lea eax, [edi + ecx*4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], esi
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xbc]
mov edx, edi
call fcn.004159a0
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
call fcn.004159a0
push dword [esp + 0x1c]
push edi
push dword [esp + 0x3c]
call fcn.007666b0
add esp, 0xc
xor ecx, ecx
xor edx, edx
mov eax, dword [esp + 0xc4]
lea eax, [eax + esi*8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x9c], ebx
cmp ecx, dword [esp + 0x38]
jl 0x414eb0
cmp edx, dword [esp + 0x24]
jge 0x414f8f
mov esi, dword [esp + 0x34]
mov eax, dword [esi + ecx*4]
mov dword [esp + 0x30], eax
lea esi, [eax + eax*2]
shl esi, 4
mov ebx, dword [esp + 0x2c]
mov ebx, dword [ebx + edx*4]
lea eax, [ebx + ebx*2]
shl eax, 4
mov edi, dword [esp + 0xbc]
cmp dword [edi + 0x258], 0
jne 0x414ef4
mov edi, dword [esp + 0x20]
fld dword [edi + esi + 8]
fld dword [edi + esi + 0xc]
fld dword [edi + eax + 8]
fld dword [edi + eax + 0xc]
jmp 0x414f08
mov edi, dword [esp + 0x20]
fild dword [edi + esi + 8]
fild dword [edi + esi + 0xc]
fild dword [edi + eax + 8]
fild dword [edi + eax + 0xc]
cmp ecx, dword [esp + 0x38]
jne 0x414f3f
fstp st(3)
fstp st(0)
fstp st(0)
fstp st(0)
lea eax, [edx*4]
lea edi, [eax + ecx*4]
mov esi, dword [esp + 0x28]
mov dword [esi + edi], ebx
inc edx
jmp 0x414ea0
mov eax, 7
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp edx, dword [esp + 0x24]
jne 0x414f68
fstp st(3)
fstp st(0)
fstp st(0)
fstp st(0)
lea eax, [edx*4]
lea edi, [eax + ecx*4]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
mov dword [esi + edi], ebx
inc ecx
jmp 0x414ea0
fxch st(1)
fcom st(3)
fnstsw ax
sahf
jbe 0x414f77
fstp st(3)
fstp st(2)
jmp 0x414f49
fucomp st(3)
fnstsw ax
fxch st(2)
fstp st(0)
sahf
jne 0x414f12
jp 0x414f12
fcom st(1)
fnstsw ax
sahf
jae 0x414f12
jp 0x414f12
jmp 0x414f49
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
inc esi
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + 0x14]
cmp esi, eax
jl 0x414dd4
mov esi, dword [esp + 0xbc]
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], edx
test eax, eax
jle 0x4155f7
mov edx, dword [esi + 0x10]
mov dword [esp + 0xa4], edx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x18], ecx
fldz
xor edx, edx
fld st(0)
fld st(1)
fld st(0)
mov dword [esp + 0x34], edx
fld1
lea ecx, [ebx - 2]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xbc], esi
mov dword [esp + 0x9c], ebx
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
inc ecx
mov eax, dword [esp + 0xa4]
lea eax, [eax - 4]
cdq
idiv ebx
mov edi, eax
mov eax, 0x55555556
imul edi
sar edi, 0x1f
sub edx, edi
fld st(1)
mov edi, dword [esp + 0x9c]
sub edi, edx
cmp edx, edi
jg 0x4155ad
fld st(1)
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], ecx
fxch st(2)
fstp dword [esp + 0x20]
fxch st(5)
fstp dword [esp + 0x18]
mov ecx, edx
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x98]
mov edi, dword [eax + ebx*4 - 4]
mov eax, dword [edi]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esp + 0xc4]
mov edx, 0x30
mov ebx, dword [eax + edx - 4]
mov dword [esp + edx + 0x34], ebx
mov edi, dword [eax + edx - 8]
mov dword [esp + edx + 0x30], edi
mov ebx, dword [eax + edx - 0xc]
mov dword [esp + edx + 0x2c], ebx
mov edi, dword [eax + edx - 0x10]
mov dword [esp + edx + 0x28], edi
sub edx, 0x10
jne 0x415087
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x98]
mov edi, dword [eax + ebx*4 - 4]
mov eax, dword [esp + 0x9c]
mov eax, dword [edi + eax*4 - 4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esp + 0xc4]
mov edx, 0x30
mov ebx, dword [eax + edx - 4]
mov dword [esp + edx + 0x64], ebx
mov edi, dword [eax + edx - 8]
mov dword [esp + edx + 0x60], edi
mov ebx, dword [eax + edx - 0xc]
mov dword [esp + edx + 0x5c], ebx
mov edi, dword [eax + edx - 0x10]
mov dword [esp + edx + 0x58], edi
sub edx, 0x10
jne 0x4150d8
mov ebx, dword [esi + 0x14]
mov dword [esp + 0xa0], ebx
lea eax, [ebx + ebx]
lea edi, [ebx + ebx + 1]
mov ebx, edi
shr ebx, 0x1f
add ebx, edi
sar ebx, 1
cmp dword [esp + 0x9c], 2
jle 0x415990
mov edi, dword [esi + 0x258]
mov dword [esp + 0xac], edi
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x98]
mov edi, dword [edi + edx*4 - 4]
mov dword [esp + 0xc8], edi
mov dword [esp + 0xb8], ebx
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0xac]
lea esi, [edi + 1]
mov ebx, dword [esp + 0xc8]
mov edi, dword [ebx + edi*4 + 4]
lea edi, [edi + edi*2]
shl edi, 4
add edi, dword [esp + 0xc4]
cmp ecx, esi
jle 0x415276
test edx, edx
jne 0x415205
test eax, eax
jle 0x4158f8
xor ebx, ebx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb8]
jmp 0x4151ae
fstp dword [esp + ebx*8 + 0x3c]
fld dword [esp + ebx*8 + 0x40]
fld dword [edi + ebx*8 + 8]
fcom st(1)
fnstsw ax
sahf
ja 0x4151bf
fst st(1)
fstp st(0)
fstp dword [esp + ebx*8 + 0x40]
fld dword [edi + ebx*8 + 0xc]
fld dword [esp + ebx*8 + 0x44]
fcom st(1)
fnstsw ax
sahf
jp 0x4151d6
jb 0x4151d8
fst st(1)
fstp st(0)
inc ebx
cmp ebx, ecx
jb 0x4151aa
fstp dword [esp + ebx*8 + 0x3c]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
jmp 0x41535f
test eax, eax
jle 0x41591e
xor ebx, ebx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov eax, dword [esp + 0xb8]
mov ecx, dword [edi + ebx*8 + 8]
mov edx, dword [esp + ebx*8 + 0x40]
cmp ecx, edx
jl 0x415232
mov ecx, edx
mov dword [esp + ebx*8 + 0x40], ecx
mov ecx, dword [edi + ebx*8 + 0xc]
mov edx, dword [esp + ebx*8 + 0x44]
cmp ecx, edx
jge 0x415244
mov ecx, edx
mov dword [esp + ebx*8 + 0x44], ecx
inc ebx
cmp ebx, eax
jb 0x415224
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
jmp 0x41535f
test edx, edx
jne 0x4152f3
test eax, eax
jle 0x415944
xor ebx, ebx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb8]
jmp 0x41529f
fstp dword [esp + ebx*8 + 0x6c]
fld dword [esp + ebx*8 + 0x70]
fld dword [edi + ebx*8 + 8]
fcom st(1)
fnstsw ax
sahf
ja 0x4152b0
fst st(1)
fstp st(0)
fstp dword [esp + ebx*8 + 0x70]
fld dword [edi + ebx*8 + 0xc]
fld dword [esp + ebx*8 + 0x74]
fcom st(1)
fnstsw ax
sahf
jp 0x4152c7
jb 0x4152c9
fst st(1)
fstp st(0)
inc ebx
cmp ebx, ecx
jb 0x41529b
fstp dword [esp + ebx*8 + 0x6c]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
jmp 0x41535f
test eax, eax
jle 0x41596a
xor ebx, ebx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov eax, dword [esp + 0xb8]
mov ecx, dword [edi + ebx*8 + 8]
mov edx, dword [esp + ebx*8 + 0x70]
cmp ecx, edx
jl 0x415320
mov ecx, edx
mov dword [esp + ebx*8 + 0x70], ecx
mov ecx, dword [edi + ebx*8 + 0xc]
mov edx, dword [esp + ebx*8 + 0x74]
cmp ecx, edx
jge 0x415332
mov ecx, edx
mov dword [esp + ebx*8 + 0x74], ecx
inc ebx
cmp ebx, eax
jb 0x415312
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
cmp dword [esi + 0x258], 0
jne 0x41538f
fld st(1)
test ebx, ebx
jbe 0x4153ac
xor edi, edi
fld dword [esp + edi*8 + 0x44]
fsub dword [esp + edi*8 + 0x40]
faddp st(1)
inc edi
cmp edi, ebx
jb 0x41537e
jmp 0x4153ac
fld st(1)
test ebx, ebx
jbe 0x4153ac
xor edi, edi
jmp 0x41539b
faddp st(1)
fild dword [esp + edi*8 + 0x44]
fild dword [esp + edi*8 + 0x40]
fsubp st(1)
inc edi
cmp edi, ebx
jb 0x415399
faddp st(1)
faddp st(5)
test eax, eax
jle 0x415998
cmp dword [esi + 0x258], 0
jne 0x4153dc
fld st(1)
test ebx, ebx
ja 0x4153c9
test eax, eax
jmp 0x4153ff
xor edi, edi
fld dword [esp + edi*8 + 0x74]
fsub dword [esp + edi*8 + 0x70]
faddp st(1)
inc edi
cmp edi, ebx
jb 0x4153cb
jmp 0x4153fd
fld st(1)
test ebx, ebx
ja 0x4153e6
test eax, eax
jmp 0x4153ff
xor edi, edi
jmp 0x4153ec
faddp st(1)
fild dword [esp + edi*8 + 0x74]
fild dword [esp + edi*8 + 0x70]
fsubp st(1)
inc edi
cmp edi, ebx
jb 0x4153ea
faddp st(1)
test eax, eax
faddp st(5)
fld st(0)
jle 0x4158ed
mov edx, dword [esi + 0x258]
xor edi, edi
fxch st(4)
fstp dword [esp + 0xc0]
test edx, edx
jne 0x41544a
fld dword [esp + edi*8 + 0x70]
fld dword [esp + edi*8 + 0x40]
fcom st(1)
fnstsw ax
sahf
jae 0x415433
jp 0x415433
fstp st(0)
jmp 0x415435
fstp st(1)
fld dword [esp + edi*8 + 0x74]
fld dword [esp + edi*8 + 0x44]
fcom st(1)
fnstsw ax
sahf
jae 0x415476
jp 0x415476
fstp st(1)
jmp 0x415478
fild dword [esp + edi*8 + 0x70]
fild dword [esp + edi*8 + 0x40]
fcom st(1)
fnstsw ax
sahf
jae 0x41545f
jp 0x41545f
fstp st(0)
jmp 0x415461
fstp st(1)
fild dword [esp + edi*8 + 0x74]
fild dword [esp + edi*8 + 0x44]
fcom st(1)
fnstsw ax
sahf
jae 0x415476
jp 0x415476
fstp st(1)
jmp 0x415478
fstp st(0)
fcom st(1)
fnstsw ax
sahf
jp 0x415485
jb 0x4158d5
fsubrp st(1)
fmulp st(4)
inc edi
cmp edi, ebx
jb 0x41541a
fld dword [esp + 0xc0]
cmp dword [esi + 0x258], 0
jne 0x4154b7
fld st(1)
test ebx, ebx
jbe 0x4154e2
xor eax, eax
fld dword [esp + eax*8 + 0x44]
fsub dword [esp + eax*8 + 0x40]
fmulp st(1)
inc eax
cmp eax, ebx
jb 0x4154a6
jmp 0x4154e2
fld st(1)
test ebx, ebx
jbe 0x4154e2
xor eax, eax
fxch st(1)
fstp dword [esp + 0xc0]
fild dword [esp + eax*8 + 0x44]
fild dword [esp + eax*8 + 0x40]
fsubp st(1)
fmulp st(1)
inc eax
cmp eax, ebx
jb 0x4154c8
fld dword [esp + 0xc0]
fxch st(1)
fld st(2)
xor eax, eax
fxch st(5)
fstp dword [esp + 0x24]
fxch st(1)
fstp dword [esp + 0xc0]
test edx, edx
jne 0x415503
fld dword [esp + eax*8 + 0x74]
fld dword [esp + eax*8 + 0x70]
jmp 0x41550b
fild dword [esp + eax*8 + 0x74]
fild dword [esp + eax*8 + 0x70]
fsubp st(1)
fmulp st(4)
inc eax
cmp eax, ebx
jb 0x4154f5
fld dword [esp + 0x24]
fld dword [esp + 0xc0]
fxch st(6)
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(5)
fxch st(1)
fxch st(1)
faddp st(3)
mov eax, dword [esi + 0x10]
mov dword [esp + 0xa4], eax
mov ebx, dword [esi + 0x18]
lea eax, [eax - 4]
cdq
idiv ebx
mov edi, eax
mov eax, 0x55555556
imul edi
sar edi, 0x1f
sub edx, edi
cmp ecx, edx
je 0x415571
fxch st(4)
fcom st(1)
fnstsw ax
sahf
fxch st(4)
ja 0x415571
fxch st(1)
fucom st(4)
fnstsw ax
sahf
fxch st(1)
jne 0x415583
jp 0x415583
jmp 0x4158c1
fstp st(4)
fstp st(4)
mov dword [esp + 0x1c], ecx
fld st(3)
fld st(1)
fxch st(5)
fxch st(1)
fxch st(4)
fstp st(2)
fstp st(0)
inc ecx
neg edx
add edx, dword [esp + 0x9c]
cmp ecx, edx
jle 0x415064
fstp st(0)
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
fld dword [esp + 0x20]
fld dword [esp + 0x18]
fxch st(5)
cmp ecx, 1
je 0x4155bb
fcom st(5)
fnstsw ax
sahf
jae 0x4155cc
jp 0x4155cc
fstp st(5)
lea esi, [ecx - 1]
fld st(4)
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
fxch st(5)
fstp st(0)
cmp ecx, dword [esp + 0xa0]
jl 0x415016
fstp st(3)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax + edx*4]
mov edi, dword [ecx]
lea edx, [edi + edi*2]
shl edx, 4
add edx, dword [esp + 0xc4]
mov eax, 0x30
mov edi, dword [edx + eax - 4]
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + eax - 4], edi
mov edi, dword [edx + eax - 8]
mov dword [ecx + eax - 8], edi
mov edi, dword [edx + eax - 0xc]
mov dword [ecx + eax - 0xc], edi
mov edi, dword [edx + eax - 0x10]
mov dword [ecx + eax - 0x10], edi
sub eax, 0x10
jne 0x415619
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax + edx*4]
mov edi, dword [esp + 0x30]
mov eax, dword [ecx + edi*4]
lea edx, [eax + eax*2]
shl edx, 4
add edx, dword [esp + 0xc4]
mov eax, 0x30
mov edi, dword [edx + eax - 4]
mov ecx, dword [ebp + 0x20]
mov dword [ecx + eax - 4], edi
mov edi, dword [edx + eax - 8]
mov dword [ecx + eax - 8], edi
mov edi, dword [edx + eax - 0xc]
mov dword [ecx + eax - 0xc], edi
mov edi, dword [edx + eax - 0x10]
mov dword [ecx + eax - 0x10], edi
sub eax, 0x10
jne 0x415668
test ebx, ebx
jle 0x4158a6
xor ecx, ecx
mov dword [esp + 0xbc], esi
mov dword [esp + 0x9c], ebx
cmp ecx, dword [esp + 0x30]
jge 0x4156ba
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x28], eax
jmp 0x4156c4
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x98]
mov esi, dword [esi + edi*4]
mov eax, dword [esi + ecx*4]
lea edx, [eax + eax*2]
shl edx, 4
add edx, dword [esp + 0xc4]
mov dword [esp + 0x38], edx
mov edi, dword [esp + 0xbc]
mov esi, dword [edi + 0x18]
mov eax, dword [edi + 0x10]
add eax, 0xfffffffc
cdq
idiv esi
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x3c], edi
movzx edx, byte [edi + 2]
shl edx, 8
movzx edi, byte [edi + 3]
mov dword [esp + 0x34], edi
add edi, edx
cmp edi, eax
jge 0x4157f7
mov dword [esp + 0x1c], edx
imul edi, esi
mov esi, dword [esp + 0x3c]
lea esi, [edi + esi + 4]
mov edi, dword [esp + 0x38]
mov eax, dword [edi]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 4]
mov edx, eax
shr edx, 0x18
mov byte [esi], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, eax
shr edx, 8
mov byte [esi + 2], dl
mov byte [esi + 3], al
mov edx, dword [esp + 0x20]
shrd edx, eax, 0x18
mov byte [esi + 4], dl
mov edx, dword [esp + 0x20]
shrd edx, eax, 0x10
mov byte [esi + 5], dl
mov edx, dword [esp + 0x20]
shrd edx, eax, 8
mov byte [esi + 6], dl
mov eax, dword [esp + 0x20]
mov byte [esi + 7], al
add esi, 8
mov edx, dword [esp + 0xbc]
mov eax, dword [edx + 0x14]
add eax, eax
test eax, eax
mov edx, dword [esp + 0x1c]
jle 0x4157da
xor eax, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ecx
mov ebx, dword [esp + 0xbc]
mov edx, dword [edi + eax*4 + 8]
mov ecx, edx
shr ecx, 0x18
mov byte [esi], cl
mov ecx, edx
shr ecx, 0x10
mov byte [esi + 1], cl
mov ecx, edx
shr ecx, 8
mov byte [esi + 2], cl
mov byte [esi + 3], dl
add esi, 4
inc eax
mov edx, dword [ebx + 0x14]
add edx, edx
cmp eax, edx
jl 0x4157a3
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov esi, dword [ebx + 0x18]
mov edi, dword [esp + 0x34]
lea edx, [edx + edi + 1]
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [ebx + 0x14], 1
mov eax, dword [esp + 0xbc]
mov esi, dword [eax + 0x14]
add esi, esi
cmp dword [eax + 0x258], 0
jne 0x415857
test esi, esi
jle 0x415898
xor edx, edx
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
fld dword [edi + edx*4 + 8]
fld dword [ebx + edx*4 + 8]
fcom st(1)
fnstsw ax
sahf
ja 0x41582f
fst st(1)
fstp st(0)
fstp dword [edi + edx*4 + 8]
fld dword [ebx + edx*4 + 0xc]
fld dword [edi + edx*4 + 0xc]
fcom st(1)
fnstsw ax
sahf
jp 0x415846
jb 0x415848
fst st(1)
fstp st(0)
fstp dword [edi + edx*4 + 0xc]
add edx, 2
cmp edx, esi
jl 0x41581e
jmp 0x415898
test esi, esi
jle 0x415898
xor ebx, ebx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov edi, dword [edx + ebx*4 + 8]
mov ecx, dword [eax + ebx*4 + 8]
cmp edi, ecx
jl 0x415877
mov edi, ecx
mov dword [edx + ebx*4 + 8], edi
mov edi, dword [eax + ebx*4 + 0xc]
mov ecx, dword [edx + ebx*4 + 0xc]
cmp edi, ecx
jge 0x415889
mov edi, ecx
mov dword [edx + ebx*4 + 0xc], edi
add ebx, 2
cmp ebx, esi
jl 0x415869
mov ecx, dword [esp + 0x24]
inc ecx
cmp ecx, dword [esp + 0x9c]
jl 0x4156a8
mov eax, dword [esp + 0x98]
call fcn.004c69c4
xor eax, eax
add esp, 0xcc
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fxch st(5)
fcom st(2)
fnstsw ax
sahf
fxch st(5)
ja 0x415571
jmp 0x415583
fstp st(0)
fstp st(4)
fstp st(3)
fld dword [esp + 0xc0]
fld st(1)
fxch st(4)
fxch st(1)
jmp 0x415495
fld dword [esp + 0x20]
fld st(0)
jmp 0x41552b
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
fld st(1)
test eax, eax
jmp 0x4153ff
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
fld st(1)
test eax, eax
jmp 0x4153ff
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
fld st(1)
test eax, eax
jmp 0x4153ff
mov edi, esi
cmp esi, dword [esp + 0xa8]
jb 0x415162
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
fld st(1)
test eax, eax
jmp 0x4153ff
test eax, eax
jg 0x41536d
fld st(1)
jmp 0x4153ff