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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x670
mov dword [esp + 0x3ac], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x3bc], edx
movsd xmm0, qword [ecx + 8]
mov esi, dword [ecx + 0x10]
mov edi, dword [ecx + 4]
mov eax, dword [ecx]
mov bl, byte [ecx + 0x61]
movsd qword [esp + 0x3f0], xmm0
movss xmm0, dword [ecx + 0x14]
mov dword [esp + 0xd8], esi
mov esi, dword [ecx + 0x18]
mov dword [esp + 0x11c], edi
mov edi, dword [ecx + 0x1c]
mov dword [esp + 0x120], eax
mov byte [esp + 0x6b], bl
movss dword [esp + 0xd0], xmm0
movss xmm0, dword [ecx + 0x24]
mov dword [esp + 0x10c], esi
mov esi, dword [ecx + 0x34]
mov dword [esp + 0x114], edi
mov edi, dword [ecx + 0x20]
movss dword [esp + 0xe8], xmm0
movss xmm0, dword [ecx + 0x28]
mov dword [esp + 0x6c], esi
mov esi, dword [ecx + 0x3c]
mov dword [esp + 0xdc], edi
mov edi, dword [ecx + 0x38]
movss dword [esp + 0xe4], xmm0
movss xmm0, dword [ecx + 0x2c]
mov dword [esp + 0x118], esi
mov esi, dword [edx]
mov dword [esp + 0x3b4], edi
movss dword [esp + 0xe0], xmm0
movss xmm0, dword [ecx + 0x30]
movss dword [esp + 0xec], xmm0
movss xmm0, dword [ecx + 0x58]
lea ecx, [esi + 8]
mov dword [esp + 0x3b8], ecx
movss dword [esp + 0xd4], xmm0
call fcn.0047e405
or dword [esi + 0x4f0], 0xffffffff
or dword [esi + 0x4f4], 0xffffffff
mov eax, dword [esi + 0xd0]
and dword [esi + 0xd0], 0
mov dword [esi + 0x4f8], 0x3b9ac9ff
test eax, eax
je 0x4606d5
movss xmm0, dword [esi + 0xd4]
movss xmm1, dword [esi + 0x38c]
movss xmm3, dword [esi + 0x35c]
movss xmm2, dword [esi + 0x360]
xor eax, eax
inc eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
divss xmm1, xmm0
movss dword [esp + 0xd0], xmm0
movss xmm0, dword [esi + 0x358]
mulss xmm0, xmm1
mulss xmm3, xmm1
mulss xmm2, xmm1
mulss xmm1, dword [esi + 0x364]
movss dword [esp + 0xe8], xmm0
movss dword [esp + 0xe4], xmm3
movss dword [esp + 0xe0], xmm2
movss dword [esp + 0xec], xmm1
lea ecx, [esp + 0x128]
lea ebx, [esi + 0x598]
call fcn.004884dc
push 0xc
pop eax
mov dword [esp + 0x48], esi
lea edi, [esp + 0x468]
mov ecx, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov edi, ebx
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x48]
lea edi, [eax + 0x5c8]
mov ecx, edi
call fcn.0047d6e7
push 0xc
pop ecx
lea esi, [esp + 0x468]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x48]
and word [esi + 0x89], 0
lea edi, [esi + 0x298]
mov ecx, edi
call fcn.00493e0f
test al, al
jne 0x46074a
and dword [esi + 0x14], 0
and dword [esi + 0x10], 0
mov ecx, edi
mov dword [esp + 0x10], edi
call fcn.00481d2d
test al, al
je 0x460762
cmp dword [esi + 0x2f8], 0
jne 0x460772
and dword [esi + 0x14], 0
and dword [esi + 0x10], 0
and dword [esi + 0x24], 0
and dword [esi + 0x20], 0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
and dword [esi + 0x54], 0
and dword [esi + 0x50], 0
mov ebx, dword [esi + 0x30]
mov edx, dword [esi + 0x38]
or ecx, eax
mov ecx, dword [esi + 0x34]
mov esi, dword [esp + 0x48]
mov edi, dword [esi + 0x3c]
mov esi, dword [esp + 0x48]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x48]
mov dword [ecx + 0x40], ebx
mov ecx, dword [esp + 0x48]
mov dword [esi + 0x48], edx
mov dword [ecx + 0x4c], edi
je 0x4607c7
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x58]
and dword [esi + 0x34], 0
mov dword [esi + 0x30], 1
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 8]
and dword [esi + 0x7c], 0
and dword [esi + 0x78], 0
and dword [esi + 0x74], 0
and dword [esi + 0x70], 0
and word [esi + 0x82], 0
imul ebx, dword [esp + 0x118], 0x50
lea ecx, [eax + 0x40]
mov dword [esp + 0x18], ecx
lea ecx, [eax + 0x5c]
add eax, 0x62
mov dword [esp + 0x20], eax
lea eax, [esi + 0x230]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x110], eax
mov al, byte [esi + 0x81]
mov byte [esp + 0xc], al
mov eax, dword [esp + 0x6c]
lea ecx, [eax + ebx]
mov dword [esp + 0x34], ecx
xor ecx, ecx
push 0x10
pop edi
mov dword [esp + 0xbc], edi
mov dword [esp + 0x124], ebx
cmp ebx, ecx
je 0x4608f4
mov edx, dword [eax + ecx]
mov esi, edi
lea edi, [edx - 8]
cmp edi, 0x10
cmovae edi, esi
cmp edi, 4
jne 0x460894
movzx edi, byte [eax + ecx + 0xb]
cmp edi, 5
je 0x460867
cmp edi, 4
jne 0x460894
cmp byte [eax + ecx + 4], 0
je 0x460894
jmp 0x4608de
cmp byte [eax + ecx + 4], 0
je 0x460894
cmp byte [esp + 0xc], 0
jne 0x460894
cmp byte [eax + ecx + 8], 0
je 0x460889
mov esi, dword [esp + 0x48]
mov byte [esi + 0x83], 1
jmp 0x460894
mov esi, dword [esp + 0x48]
mov byte [esi + 0x82], 1
cmp edx, 8
push 0x10
pop edi
jae 0x4608d6
cmp edx, 7
jne 0x4608d6
cmp byte [eax + ecx + 0x48], 1
jne 0x4608d6
mov edx, dword [eax + ecx + 0x38]
mov edi, dword [eax + ecx + 0x3c]
mov esi, dword [eax + ecx + 0x44]
mov ebx, dword [eax + ecx + 0x40]
mov eax, dword [esp + 0x48]
mov dword [eax + 0x78], ebx
mov ebx, dword [esp + 0x124]
mov dword [eax + 0x7c], esi
mov dword [eax + 0x70], edx
mov dword [eax + 0x74], edi
mov eax, dword [esp + 0x6c]
push 0x10
pop edi
add ecx, 0x50
jmp 0x460834
mov eax, dword [esp + 0x48]
and dword [eax + 0x34], 0
and dword [eax + 0x30], 0
mov byte [eax + 0x81], 0
push 0x10
pop edi
mov ecx, dword [esp + 0x10]
call fcn.00481d2d
test al, al
jne 0x46090c
mov eax, dword [esp + 0x48]
mov byte [eax + 0xfb], 2
lea ecx, [esp + 0x128]
call fcn.0049378d
mov esi, 0x178
push esi
mov ebx, dword [esp + 0x114]
push ebx
lea eax, [esp + 0x470]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push esi
lea eax, [esp + 0x12c]
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
mov al, byte [ecx + 4]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x20]
movzx esi, word [ecx + 4]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x120]
movsd qword [esp + 0x3e0], xmm1
movsd xmm1, qword [esp + 0x5a0]
movsd qword [esp + 0x3e8], xmm0
movsd qword [esp + 0x3d8], xmm2
mov byte [esp + 0xc8], al
mov dword [esp + 0xc4], ebx
or ecx, dword [esp + 0x11c]
mov word [esp + 0x30c], si
mov dword [esp + 0x308], edx
movsd qword [esp + 0x460], xmm1
je 0x4609d2
movsd xmm0, qword [esp + 0x3f0]
jmp 0x4609df
cvtss2sd xmm0, dword [esp + 0xd4]
addsd xmm0, xmm1
movss xmm2, dword [esp + 0xe0]
movss xmm4, dword [esp + 0xe4]
movss xmm3, dword [esp + 0xe8]
cmp dword [esp + 0xdc], 0
movss xmm1, dword [esp + 0xec]
mov esi, dword [esp + 0x34]
movss dword [esp + 0x104], xmm2
movss dword [esp + 0x100], xmm4
movss dword [esp + 0xfc], xmm3
jne 0x460a6b
movss xmm1, dword [esp + 0x590]
movss dword [esp + 0xfc], xmm1
movss xmm1, dword [esp + 0x594]
movss dword [esp + 0x100], xmm1
movss xmm1, dword [esp + 0x598]
movss dword [esp + 0x104], xmm1
movss xmm1, dword [esp + 0x59c]
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x6c]
movss dword [esp + 0x3b0], xmm1
movsd qword [esp + 0x90], xmm0
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x48]
mov al, byte [eax + 0x514]
mov byte [esp + 0x8f], al
cmp ecx, esi
je 0x46126d
mov eax, dword [ecx]
add ecx, 0x50
add eax, 0xfffffff8
cmp eax, 0x10
cmovae eax, edi
cmp eax, 0xd
jne 0x460aa0
mov eax, dword [ecx - 0x48]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov eax, dword [ecx - 0x44]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5b4]
test eax, eax
je 0x460ba5
mov ecx, dword [esp + 0x5b8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], eax
movzx eax, word [eax + 0x4d6]
xor ecx, ecx
dec ecx
lea esi, [eax*8]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x460b62
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
mov edx, dword [eax + ecx*8 + 8]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [esp + 0x20], eax
xor ebx, eax
mov eax, edi
mov dword [esp + 0x10], edx
xor eax, edx
xor edx, edx
or eax, ebx
mov eax, dword [esp + 0xc]
setne dl
cmp edi, dword [esp + 0x10]
sbb eax, dword [esp + 0x20]
mov eax, 0xff
cmovb edx, eax
inc ecx
add esi, 0xfffffff8
cmp dl, 1
je 0x460b00
mov esi, dword [esp + 0x34]
movzx eax, dl
test eax, eax
je 0x460b8a
push 0x10
pop edi
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
jmp 0x460b75
mov ecx, dword [esp + 0x1c]
push 0x10
pop edi
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
sub edx, 1
jb 0x460b9d
mov eax, dword [eax + ecx*4 + 0x4d8]
mov dword [esp + 0x50], edx
jmp 0x460ae7
lea ebx, [esp + 0x5b4]
push 0x10
pop edi
mov ecx, dword [esp + 0x28]
jmp 0x460aa0
xor ebx, ebx
mov dword [esp + 0x30], ecx
jmp 0x460ba7
xor eax, eax
test eax, eax
mov dword [esp + 0x20], ebx
jne 0x460c2d
call fcn.0048733a
movzx ecx, word [eax + 0x4d6]
cmp ecx, 0xb
jae 0x464d69
lea edx, [ecx + 1]
mov ebx, dword [esp + 0xc]
mov word [eax + 0x4d6], dx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*8 + 4], ebx
mov dword [eax + ecx*8], edx
imul ecx, ecx, 0x68
mov dword [eax + ecx + 0x58], 2
mov dword [eax + ecx + 0xac], ebx
mov dword [eax + ecx + 0xa8], edx
and dword [eax + ecx + 0xb0], 0
and dword [eax + ecx + 0xb8], 0
mov dword [esp + 0x5b4], eax
and dword [esp + 0x5b8], 0
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x5bc], 1
jmp 0x460aa0
cmp word [eax + 0x4d6], 0xb
jae 0x460cac
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x314], ebx
mov dword [esp + 0x128], 2
lea ecx, [esp + 0x5e0]
lea edx, [esp + 0x310]
mov dword [esp + 0x318], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x178], eax
and dword [esp + 0x180], 0
and dword [esp + 0x188], 0
lea eax, [esp + 0x128]
push eax
push dword [esp + 0x10]
push dword [esp + 0x20]
call fcn.004875b1
add esp, 0xc
jmp 0x46125d
mov edx, dword [esp + 0x30]
mov bl, 1
mov dword [esp + 0x14], eax
cmp edx, 5
jae 0x460cc2
push 4
pop esi
mov ecx, edx
jmp 0x460cde
mov esi, edx
mov ecx, edx
je 0x460cde
cmp edx, 6
jne 0x460cd6
xor ebx, ebx
push 5
pop esi
xor ecx, ecx
jmp 0x460cde
lea ecx, [edx - 7]
xor ebx, ebx
push 6
pop esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ecx
call fcn.0048733a
mov edx, eax
mov eax, dword [esp + 0x14]
mov edi, esi
not edi
movzx ecx, word [eax + 0x4d6]
lea ebx, [eax + esi*8 + 8]
mov dword [esp + 0x2c], ebx
add edi, ecx
mov dword [esp + 0x4c], edi
mov word [edx + 0x4d6], di
mov edi, eax
lea eax, [esi + 1]
sub ecx, eax
mov eax, dword [ebx - 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x70], eax
mov eax, dword [ebx - 4]
mov dword [esp + 0xa0], eax
imul eax, esi, 0x68
lea esi, [edi + eax + 0x5c]
mov dword [esp + 0x64], eax
mov eax, dword [esi - 4]
mov dword [esp + 0x1c], eax
push 0x19
pop ecx
lea edi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
mov edi, edx
mov dword [esp + 0x50], edx
mov esi, dword [esp + 0x4c]
mov ecx, esi
call fcn.00487523
mov ebx, edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
push ebx
push eax
call fcn.0048753d
pop eax
pop ecx
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
lea edx, [edi + 0x58]
mov ecx, esi
lea eax, [ebx + eax + 0xc0]
mov dword [esp + 0x2c], eax
call fcn.0048756a
mov edi, edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
push edi
push eax
call fcn.00487584
pop eax
pop ecx
mov eax, dword [esp + 0x44]
mov word [ebx + 0x4d6], ax
push 0x19
pop ecx
lea edi, [esp + 0x310]
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x128], 2
cmp byte [esp + 0x3c], 0
mov eax, dword [esp + 0x50]
cmovne eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x5e0], eax
mov eax, 0
cmovne eax, ebx
mov dword [esp + 0x5e4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5e8], eax
push 0x13
pop ecx
lea edi, [esp + 0x12c]
lea esi, [esp + 0x3f8]
lea edx, [esp + 0x5e0]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x128]
lea ecx, [esp + 0xb0]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x17c], esi
mov dword [esp + 0x178], eax
and dword [esp + 0x180], 0
and dword [esp + 0x188], 0
push edi
push esi
push eax
call fcn.004875b1
push 0x19
pop eax
add esp, 0xc
mov ecx, eax
lea edi, [esp + 0x2a0]
lea esi, [esp + 0x310]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x1c], 3
push 0x10
pop edi
mov esi, dword [esp + 0x34]
je 0x46125d
mov ecx, eax
lea edi, [esp + 0x5e0]
lea esi, [esp + 0x2a0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [edx + 0x4d0]
test ecx, ecx
mov dword [esp + 0xc], ecx
je 0x46114f
mov ecx, eax
cmp dword [esp + 0x18], esi
movzx eax, word [edx + 0x4d4]
lea edi, [esp + 0x2a0]
lea esi, [esp + 0x5e0]
rep movsd dword es:[edi], dword [esi]
jne 0x464d25
mov ebx, dword [esp + 0xc]
movzx edx, ax
movzx ecx, word [ebx + 0x4d6]
cmp ecx, 0xb
jb 0x461213
cmp ax, 5
mov dword [esp + 0x64], ecx
jae 0x460efd
mov al, 1
mov dword [esp + 0x60], edx
mov dword [esp + 0x40], eax
push 4
jmp 0x460f39
movzx esi, ax
je 0x460f1c
cmp esi, 6
jne 0x460f28
mov dword [esp + 0x40], 0
push 5
pop esi
mov dword [esp + 0x60], 0
jmp 0x460f3a
mov al, 1
mov dword [esp + 0x60], esi
mov dword [esp + 0x40], eax
jmp 0x460f3a
add edx, 0xfffffff9
mov dword [esp + 0x40], 0
mov dword [esp + 0x60], edx
push 6
pop esi
call fcn.0048736a
movzx edx, word [ebx + 0x4d6]
mov ecx, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], esi
not ecx
add ecx, edx
mov dword [esp + 0x10], edx
mov edx, esi
mov dword [esp + 0x4c], ecx
mov word [eax + 0x4d6], cx
lea ecx, [ebx + esi*8 + 8]
mov eax, dword [ecx - 8]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x9c], eax
mov eax, dword [ecx - 4]
mov dword [esp + 0xc0], eax
imul eax, esi, 0x68
lea esi, [ebx + eax + 0x5c]
mov dword [esp + 0x38], eax
mov eax, dword [esi - 4]
mov dword [esp + 0x88], eax
push 0x19
pop ecx
lea edi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
lea ecx, [edx + 1]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xf8], ecx
sub edi, ecx
mov ecx, esi
mov edx, ebx
mov dword [esp + 0x10], edi
call fcn.00487523
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, edx
mov edx, edi
push eax
push dword [esp + 0x30]
call fcn.0048753d
pop eax
pop ecx
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
lea edx, [ebx + 0x58]
mov ecx, esi
lea eax, [edi + eax + 0xc0]
mov dword [esp + 0x38], eax
call fcn.0048756a
mov esi, edx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
push esi
push eax
call fcn.00487584
pop eax
pop ecx
mov eax, dword [esp + 0x14]
mov edx, eax
mov word [edi + 0x4d6], ax
push 0x19
pop ecx
lea edi, [esp + 0x310]
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebx + 0x4d6]
cmp eax, 0xc
lea ecx, [eax + 1]
jae 0x464e83
mov eax, dword [esp + 0x64]
sub eax, edx
cmp eax, ecx
jne 0x464e8b
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0xc]
mov edi, ebx
mov ebx, dword [esp + 0x18]
mov esi, 0x4d8
shl ecx, 2
lea eax, [edx + eax*4]
mov edx, 0x4d8
inc ebx
add eax, edx
mov edx, edi
add edx, esi
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, edi
mov edx, ebx
mov dword [esp + 0x18], ebx
call fcn.0048739a
mov dword [esp + 0x10], edx
push 0x19
pop edx
mov ecx, edx
lea esi, [esp + 0x310]
lea edi, [esp + 0x3f8]
mov ebx, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x12c]
lea esi, [esp + 0x2a0]
mov ecx, dword [esp + 0x1c]
cmp byte [esp + 0x40], 0
mov dword [esp + 0x128], ecx
mov ecx, edx
cmovne eax, dword [esp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x60]
mov ecx, eax
push dword [esp + 0x50]
lea eax, [esp + 0x12c]
push eax
push dword [esp + 0xa8]
push dword [esp + 0x7c]
call fcn.004873e3
add esp, 0x10
mov eax, dword [esp + 0x88]
cmp eax, 3
je 0x461252
push 0x19
pop ecx
lea esi, [esp + 0x3f8]
lea edi, [esp + 0x5e0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xa0], eax
push 0x19
pop eax
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
jmp 0x460e99
mov edi, dword [esp + 0x5b4]
mov dword [esp + 0x10], esi
test edi, edi
je 0x464d9f
mov esi, dword [esp + 0x5b8]
call fcn.0048736a
inc esi
mov ecx, eax
mov dword [eax + 0x4d8], edi
mov edx, esi
call fcn.0048739a
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5b8], edx
dec edx
cmp edx, dword [esp + 0x10]
push 0x19
pop ecx
lea edi, [esp + 0x128]
lea esi, [esp + 0x5e0]
rep movsd dword es:[edi], dword [esi]
jne 0x464db1
movzx edx, word [eax + 0x4d6]
cmp edx, 0xa
ja 0x464dc3
lea ecx, [edx + 1]
mov esi, dword [esp + 0x1c]
mov word [eax + 0x4d6], cx
mov ecx, dword [esp + 0x70]
mov dword [eax + edx*8], ecx
mov ecx, dword [esp + 0xa0]
mov dword [eax + edx*8 + 4], ecx
imul ecx, edx, 0x68
lea edi, [eax + ecx + 0x5c]
mov dword [eax + ecx + 0x58], esi
push 0x19
pop ecx
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x50]
mov dword [eax + edx*4 + 0x4dc], ecx
inc edx
mov dword [ecx + 0x4d0], eax
mov word [ecx + 0x4d4], dx
push 0x10
pop edi
mov esi, dword [esp + 0x34]
jmp 0x46125d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x128], eax
push 0x19
pop ecx
lea edi, [esp + 0x12c]
lea esi, [esp + 0x5e0]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
push dword [esp + 0x50]
lea eax, [esp + 0x12c]
push eax
push dword [esp + 0xa8]
push dword [esp + 0x7c]
call fcn.004873e3
add esp, 0x10
push 0x10
pop edi
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x20]
inc dword [esp + 0x5bc]
mov ecx, dword [esp + 0x28]
jmp 0x460aa0
mov eax, dword [esp + 0x5b4]
test eax, eax
mov edx, eax
setne cl
je 0x461284
mov edx, dword [esp + 0x5bc]
mov esi, dword [esp + 0x5b8]
movss xmm0, dword [0x646138]
mov dword [esp + 0xc0], edx
xor edx, edx
mov dl, cl
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], edx
movss dword [esp + 0xcc], xmm0
mov ebx, dword [esp + 0xc0]
test ebx, ebx
je 0x462356
cmp dword [esp + 0xf4], 0
mov ecx, dword [esp + 0xf0]
je 0x4612ef
test ecx, ecx
jne 0x4612ef
mov ecx, eax
push 0x10
pop edi
sub esi, 1
jb 0x461301
mov ecx, dword [ecx + 0x4d8]
jmp 0x4612e2
cmp dword [esp + 0xf4], 0
push 0x10
pop edi
jne 0x461313
jmp 0x464d7b
xor eax, eax
xor esi, esi
mov edx, ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0xf4], ecx
mov ecx, edx
dec ebx
mov edx, esi
movzx esi, word [ecx + 0x4d6]
cmp edx, esi
jb 0x46133b
mov esi, dword [ecx + 0x4d0]
test esi, esi
je 0x464cd1
movzx edx, word [ecx + 0x4d4]
inc eax
mov ecx, esi
jmp 0x461316
lea esi, [edx + 1]
test eax, eax
mov dword [esp + 0xc0], ebx
je 0x46136f
lea esi, [ecx + esi*4 + 0x4d8]
mov ebx, dword [esi]
dec eax
lea esi, [ebx + 0x4d8]
jne 0x461350
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x88], 0
jmp 0x46137d
mov dword [esp + 0x88], esi
mov dword [esp + 0xf0], ecx
imul eax, edx, 0x68
movss xmm0, dword [esp + 0x540]
movss xmm1, dword [esp + 0x544]
mov dword [esp + 0x28], 0
lea edx, [ecx + eax + 0x58]
lea eax, [ecx + eax + 0xb0]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x53c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
movss dword [esp + 0x3c4], xmm0
movss dword [esp + 0x3c0], xmm1
mov dword [esp + 0x3c8], edx
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
cmp eax, esi
je 0x461e05
mov edx, dword [eax]
lea ecx, [eax + 0x50]
mov dword [esp + 0xc], ecx
add edx, 0xfffffff8
cmp edx, 0x10
cmovae edx, edi
cmp edx, 0xd
jne 0x4613d9
mov ecx, dword [eax + 8]
mov ebx, dword [esp + 0x1c]
mov edx, dword [eax + 0xc]
xor edx, dword [ebx + 0x54]
xor ecx, dword [ebx + 0x50]
or ecx, edx
jne 0x4613d9
mov ecx, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 0x24]
lea edx, [ecx - 2]
cmp edx, 2
jae 0x46153a
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov al, 1
mov dword [esp + 0x28], eax
test edx, edx
je 0x4613d9
lea ecx, [esp + 0x2a0]
push ebx
push dword [esp + 0x24]
mov eax, dword [esp + 0x24]
push dword [eax + 0x5c]
call fcn.00486a73
add esp, 0xc
cmp dword [esp + 0x2a0], 0
jne 0x4613d9
mov edx, dword [esp + 0x2a8]
mov eax, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x2ac]
mov byte [esp + 0xb0], 0
test edx, edx
je 0x4616d0
dec edx
mov eax, dword [eax + ecx*4 + 0xe8]
sub edx, 1
movzx ecx, word [eax + 0xe2]
jae 0x461489
mov dword [esp + 0x5e0], eax
and dword [esp + 0x5e4], 0
dec ecx
lea edx, [esp + 0x5e0]
lea eax, [esp + 0xb0]
mov dword [esp + 0x5e8], ecx
lea ecx, [esp + 0x128]
push eax
call fcn.00486b2e
pop eax
mov eax, dword [esp + 0x12c]
lea ecx, [esp + 0x130]
mov edx, dword [esp + 0x128]
mov edi, dword [esp + 0x148]
movsd xmm0, qword [ecx]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x144]
movsd qword [esp + 0x3f8], xmm0
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x140]
movzx ebx, word [eax + 0xe2]
cmp edi, ebx
jb 0x461707
mov ebx, dword [eax + 0x58]
test ebx, ebx
je 0x46170d
movzx edi, word [eax + 0xe0]
inc ecx
mov eax, ebx
jmp 0x461514
movss xmm0, dword [eax + 0x18]
movss xmm2, dword [eax + 0x1c]
movss xmm1, dword [eax + 0x20]
cmp ecx, 1
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x14], xmm2
movss dword [esp + 0x10], xmm1
jne 0x4615cf
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
test edx, edx
je 0x4613d9
lea ecx, [esp + 0x128]
push ebx
push dword [esp + 0x24]
mov eax, dword [esp + 0x24]
push dword [eax + 0x5c]
call fcn.00486a73
add esp, 0xc
cmp dword [esp + 0x128], 0
jne 0x4613d9
mov eax, dword [esp + 0x12c]
imul ecx, dword [esp + 0x134], 0xc
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
movss xmm1, dword [esp + 0x10]
movss dword [eax + ecx + 0x5c], xmm0
movss dword [eax + ecx + 0x60], xmm2
movss dword [eax + ecx + 0x64], xmm1
jmp 0x4613d9
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
test edx, edx
je 0x461622
lea ecx, [esp + 0x128]
push ebx
push dword [esp + 0x24]
mov eax, dword [esp + 0x24]
push dword [eax + 0x5c]
call fcn.00486a73
add esp, 0xc
cmp dword [esp + 0x128], 0
mov esi, dword [esp + 0x12c]
mov eax, dword [esp + 0x134]
je 0x461dc8
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x9c], ecx
mov ecx, eax
jmp 0x46162b
mov ecx, dword [esp + 0xf8]
xor esi, esi
test esi, esi
mov dword [esp + 0xf8], ecx
je 0x461d5b
cmp word [esi + 0xe2], 0xb
jae 0x4616b5
mov eax, dword [esp + 0x9c]
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
movss xmm1, dword [esp + 0x10]
mov dword [esp + 0x310], esi
lea edx, [esp + 0x310]
mov dword [esp + 0x314], eax
lea eax, [esp + 0x128]
mov dword [esp + 0x318], ecx
movss dword [esp + 0x128], xmm0
movss dword [esp + 0x12c], xmm2
movss dword [esp + 0x130], xmm1
lea ecx, [esp + 0x2a0]
push eax
push ebx
push dword [esp + 0x28]
call fcn.004872a4
add esp, 0xc
jmp 0x461d45
mov dl, 1
cmp ecx, 5
mov dword [esp + 0x3c], ebx
jae 0x461782
push 4
pop edi
mov dword [esp + 0x50], ecx
jmp 0x46182f
mov dword [esp + 0x128], eax
and dword [esp + 0x12c], 0
lea eax, [esp + 0xb0]
mov dword [esp + 0x130], ecx
lea ecx, [esp + 0x310]
lea edx, [esp + 0x128]
push eax
call fcn.00486b2e
pop eax
jmp 0x4617dc
mov ebx, ecx
mov ecx, edi
jmp 0x461711
mov ebx, eax
xor eax, eax
mov edi, dword [eax + ecx*8]
mov dword [eax + ecx*8], edx
mov edx, dword [eax + ecx*8 + 4]
imul esi, ecx, 0xc
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
mov dword [eax + ecx*8 + 4], edx
lea edx, [esp + 0x318]
inc ecx
test ebx, ebx
mov edi, dword [eax + esi + 0x64]
movsd xmm1, qword [esp + 0x3f8]
mov dword [edx + 8], edi
movsd xmm0, qword [eax + esi + 0x5c]
movsd qword [edx], xmm0
movsd qword [eax + esi + 0x5c], xmm1
mov edi, dword [esp + 0x400]
mov dword [eax + esi + 0x64], edi
je 0x4617a9
lea ecx, [eax + ecx*4 + 0xe8]
push 0x10
pop edi
mov esi, dword [esp + 0x34]
mov eax, dword [ecx]
dec ebx
lea ecx, [eax + 0xe8]
jne 0x461773
xor ecx, ecx
jmp 0x4617b0
mov edi, ecx
mov dword [esp + 0x50], ecx
je 0x46182f
cmp ecx, 6
jne 0x461823
xor edx, edx
push 5
pop edi
mov dword [esp + 0x50], 0
jmp 0x46182f
push 0x10
pop edi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x328], eax
and dword [esp + 0x32c], 0
mov dword [esp + 0x330], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x310], edx
mov dword [esp + 0x314], ecx
mov ebx, dword [esp + 0x40]
dec dword [ebx + 8]
cmp byte [esp + 0xb0], 0
je 0x4613d9
mov ecx, dword [ebx]
test ecx, ecx
je 0x464d57
mov eax, dword [ebx + 4]
test eax, eax
je 0x464d48
mov edx, dword [ecx + 0xe8]
dec eax
mov dword [ebx], edx
mov dword [ebx + 4], eax
and dword [edx + 0x58], 0
push 8
pop edx
call fcn.00404240
jmp 0x4613d9
lea eax, [ecx - 7]
xor edx, edx
mov dword [esp + 0x50], eax
push 6
pop edi
mov dword [esp + 0xa0], edx
call fcn.004870ee
movzx ecx, word [esi + 0xe2]
mov ebx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], edi
not ebx
add ebx, ecx
mov dword [esp + 0x2c], ecx
lea ecx, [esi + edi*8 + 8]
mov word [eax + 0xe2], bx
imul eax, edi, 0xc
mov dword [esp + 0x4c], ecx
lea edx, [esi + eax + 0x68]
mov eax, dword [ecx - 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x30], eax
mov eax, dword [ecx - 4]
mov ecx, ebx
mov dword [esp + 0x70], eax
mov eax, dword [edx - 4]
mov dword [esp + 0x130], eax
lea eax, [edi + 1]
mov edi, dword [esp + 0x2c]
movsd xmm0, qword [edx - 0xc]
mov edx, dword [esp + 0x28]
sub edi, eax
movsd qword [esp + 0x128], xmm0
call fcn.00487523
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
mov eax, edx
mov edx, edi
push eax
push dword [esp + 0x30]
call fcn.0048753d
pop eax
pop ecx
mov eax, dword [esp + 0x28]
mov ecx, ebx
lea edx, [eax + 0x5c]
call fcn.0048756a
mov ecx, dword [esp + 0x44]
mov ebx, edx
mov edx, edi
push ebx
push eax
call fcn.00486a27
pop eax
pop ecx
mov eax, dword [esp + 0x38]
cmp byte [esp + 0xa0], 0
mov ebx, dword [esp + 0x9c]
movss xmm1, dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
lea ecx, [esp + 0x2a0]
lea edx, [esp + 0x310]
mov word [esi + 0xe2], ax
mov eax, dword [esp + 0x130]
movsd xmm0, qword [esp + 0x128]
movss dword [esp + 0x128], xmm1
movss xmm1, dword [esp + 0x10]
movss dword [esp + 0x12c], xmm2
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x28]
movsd qword [esp + 0x3f8], xmm0
movss dword [esp + 0x130], xmm1
cmovne eax, esi
mov dword [esp + 0x310], eax
mov eax, 0
cmovne eax, ebx
mov dword [esp + 0x314], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x318], eax
lea eax, [esp + 0x128]
push eax
push dword [esp + 0x40]
xor edi, edi
push dword [esp + 0x28]
call fcn.004872a4
add esp, 0xc
mov eax, dword [esp + 0x400]
movsd xmm0, qword [esp + 0x3f8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x5e8], eax
movsd qword [esp + 0x5e0], xmm0
mov dword [esp + 0xb8], eax
movsd qword [esp + 0xb0], xmm0
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x461c4d
movzx eax, word [esi + 0xe0]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
cmp esi, edi
mov dword [esp + 0x2a8], edx
movsd qword [esp + 0x2a0], xmm0
jne 0x464d25
movzx esi, word [ecx + 0xe2]
movzx edx, ax
cmp esi, 0xb
jb 0x461d06
mov bl, 1
cmp ax, 5
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebx
jae 0x461a35
mov esi, ecx
mov dword [esp + 0x44], edx
push 4
jmp 0x461a6d
movzx ebx, ax
mov esi, ecx
je 0x461a56
cmp ebx, 6
jne 0x461a5c
mov dword [esp + 0x50], 0
push 5
pop ebx
mov dword [esp + 0x44], 0
jmp 0x461a6e
mov dword [esp + 0x44], ebx
jmp 0x461a6e
add edx, 0xfffffff9
mov dword [esp + 0x50], 0
mov dword [esp + 0x44], edx
push 6
pop ebx
call fcn.0048711b
movzx edx, word [esi + 0xe2]
mov ecx, esi
mov dword [esp + 0x14], esi
mov esi, ebx
mov edi, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], eax
not esi
lea ebx, [ecx + ebx*8 + 8]
add esi, edx
mov word [eax + 0xe2], si
imul eax, edi, 0xc
lea ecx, [ecx + eax + 0x68]
mov eax, dword [ebx - 8]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x64], eax
mov eax, dword [ebx - 4]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx - 4]
mov dword [esp + 0x130], eax
movsd xmm0, qword [ecx - 0xc]
lea ecx, [edi + 1]
mov edi, dword [esp + 0x18]
sub edx, ecx
mov dword [esp + 0x60], ecx
mov ecx, esi
mov dword [esp + 0x38], edx
mov edx, edi
movsd qword [esp + 0x128], xmm0
call fcn.00487523
mov ecx, ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov eax, edx
mov edx, ebx
push eax
push dword [esp + 0x40]
call fcn.0048753d
pop eax
pop ecx
lea edx, [edi + 0x5c]
mov ecx, esi
call fcn.0048756a
mov ecx, dword [esp + 0xa0]
mov esi, edx
mov edx, ebx
push esi
push eax
call fcn.00486a27
mov ebx, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esp + 0x10]
mov word [ebx + 0xe2], ax
mov eax, dword [esp + 0x130]
movsd xmm0, qword [esp + 0x128]
mov dword [esp + 0x318], eax
movsd qword [esp + 0x310], xmm0
movzx ecx, word [edi + 0xe2]
lea eax, [ecx + 1]
cmp ecx, 0xc
jae 0x464d34
mov edx, dword [esp + 0x4c]
mov esi, edi
mov ecx, 0xe8
mov edi, dword [esp + 0x20]
add esi, ecx
mov ecx, dword [esp + 0x60]
sub edx, dword [esp + 0x10]
inc edi
lea ecx, [ebx + ecx*4]
mov ebx, 0xe8
add ecx, ebx
push eax
push esi
call fcn.0042bf71
pop eax
pop ecx
mov ecx, dword [esp + 0x18]
mov edx, edi
mov dword [esp + 0x20], edi
call fcn.00487148
mov esi, eax
movsd xmm0, qword [esp + 0x310]
mov eax, dword [esp + 0x318]
cmp byte [esp + 0x50], 0
mov ebx, dword [esp + 0x14]
mov edi, edx
mov edx, dword [esp + 0x44]
mov ecx, esi
movsd qword [esp + 0x3f8], xmm0
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x2a8]
movsd xmm0, qword [esp + 0x2a0]
cmovne ecx, ebx
mov dword [esp + 0x130], eax
movsd qword [esp + 0x128], xmm0
push dword [esp + 0x28]
lea eax, [esp + 0x12c]
push eax
push dword [esp + 0x78]
push dword [esp + 0x3c]
call fcn.0048718e
add esp, 0x10
movsd xmm0, qword [esp + 0x3f8]
mov eax, dword [esp + 0x400]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], esi
mov esi, ebx
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0xb8], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x70], ecx
jmp 0x4619ca
mov eax, dword [esp + 0x40]
mov ebx, dword [eax]
test ebx, ebx
je 0x464d9f
mov esi, dword [eax + 4]
call fcn.0048711b
inc esi
mov ecx, eax
mov dword [eax + 0xe8], ebx
mov edx, esi
call fcn.00487148
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
mov dword [ecx + 4], edx
dec edx
mov ecx, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
cmp edx, edi
mov dword [esp + 0x130], ecx
movsd qword [esp + 0x128], xmm0
jne 0x464db1
movzx ecx, word [eax + 0xe2]
cmp ecx, 0xa
push 0x10
pop edi
ja 0x464dc3
lea edx, [ecx + 1]
mov word [eax + 0xe2], dx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*8], edx
mov edx, dword [esp + 0x70]
mov dword [eax + ecx*8 + 4], edx
imul edx, ecx, 0xc
mov esi, dword [esp + 0x130]
mov dword [eax + edx + 0x64], esi
mov esi, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x128]
movsd qword [eax + edx + 0x5c], xmm0
mov dword [eax + ecx*4 + 0xec], esi
inc ecx
mov dword [esi + 0x58], eax
mov word [esi + 0xe0], cx
jmp 0x461d45
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
mov dword [esp + 0x130], eax
movsd qword [esp + 0x128], xmm0
push dword [esp + 0x28]
lea eax, [esp + 0x12c]
push eax
push dword [esp + 0x78]
push dword [esp + 0x3c]
call fcn.0048718e
add esp, 0x10
push 0x10
pop edi
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
inc dword [eax + 8]
mov al, 1
mov dword [esp + 0x28], eax
jmp 0x4613d9
call fcn.004870ee
movzx ecx, word [eax + 0xe2]
cmp ecx, 0xb
jae 0x464d69
lea edx, [ecx + 1]
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
movss xmm1, dword [esp + 0x10]
mov word [eax + 0xe2], dx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*8 + 4], ebx
mov dword [eax + ecx*8], edx
mov edx, dword [esp + 0x40]
imul ecx, ecx, 0xc
movss dword [eax + ecx + 0x5c], xmm0
movss dword [eax + ecx + 0x60], xmm2
movss dword [eax + ecx + 0x64], xmm1
mov dword [edx], eax
and dword [edx + 4], 0
mov al, 1
mov dword [edx + 8], 1
mov dword [esp + 0x28], eax
jmp 0x4613d5
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
movss xmm1, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
imul eax, eax, 0xc
movss dword [esi + eax + 0x5c], xmm0
movss dword [esi + eax + 0x60], xmm2
movss dword [esi + eax + 0x64], xmm1
mov al, 1
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x28], eax
jmp 0x4613d5
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x60]
cmp edx, 2
push 2
pop eax
mov esi, dword [esp + 0x88]
jb 0x46234d
mov edi, dword [ecx + 0x58]
mov eax, dword [ecx + 0x5c]
xor ebx, ebx
mov esi, edx
xorps xmm0, xmm0
mov dword [esp + 0x70], edx
movss dword [esp + 0x10], xmm0
movss dword [esp + 0xc], xmm0
movss dword [esp + 0x20], xmm0
test edi, edi
mov dword [esp + 0x30], eax
setne bl
cmove esi, edi
mov dword [esp + 0x128], ebx
and dword [esp + 0x12c], 0
mov dword [esp + 0x130], edi
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ebx
and dword [esp + 0x13c], 0
mov dword [esp + 0x140], edi
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], esi
lea ecx, [esp + 0x128]
call fcn.00484d4c
test eax, eax
je 0x461ed3
movss xmm0, dword [esp + 0x10]
movss xmm2, dword [esp + 0x20]
movss xmm1, dword [esp + 0xc]
addss xmm0, dword [eax + 8]
addss xmm2, dword [eax]
addss xmm1, dword [eax + 4]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x20], xmm2
movss dword [esp + 0xc], xmm1
jmp 0x461e8f
movss xmm0, dword [esp + 0x70]
movsd xmm1, qword [0x6461f8]
movss xmm2, dword [0x646138]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x128], ebx
and dword [esp + 0x12c], 0
mov dword [esp + 0x130], edi
mov dword [esp + 0xa0], esi
orpd xmm0, xmmword [0x6463f0]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ebx
and dword [esp + 0x13c], 0
mov dword [esp + 0x140], edi
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], esi
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
divss xmm2, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm2
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0xc]
mulss xmm0, xmm2
movss dword [esp + 0xc], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x50], xmm0
lea ecx, [esp + 0x128]
call fcn.00484d4c
test eax, eax
je 0x462027
movss xmm0, dword [esp + 0x20]
movss xmm1, dword [esp + 0xc]
mov esi, eax
subss xmm0, dword [eax]
subss xmm1, dword [eax + 4]
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
pop eax
pop ecx
fstp dword [esp + 0x3d4]
movaps xmm1, xmmword [0x6461e0]
movss xmm0, dword [esp + 0x14]
movss xmm2, dword [esp + 0x50]
addss xmm0, dword [esp + 0x3d4]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esi]
andps xmm0, xmm1
addss xmm2, xmm0
movss xmm0, dword [esp + 0xc]
movss dword [esp + 0x50], xmm2
movss xmm2, dword [esp + 0x18]
subss xmm0, dword [esi + 4]
andps xmm0, xmm1
addss xmm2, xmm0
movss dword [esp + 0x18], xmm2
jmp 0x461f84
movss xmm0, dword [esp + 0x38]
movss xmm2, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
movss xmm1, dword [esp + 0x10]
movss xmm3, dword [esp + 0x50]
mov dword [esp + 0x128], ebx
and dword [esp + 0x12c], 0
mov dword [esp + 0x130], edi
lea ecx, [esp + 0x128]
mulss xmm2, xmm0
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ebx
and dword [esp + 0x13c], 0
mov dword [esp + 0x140], edi
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0xa0]
mulss xmm1, xmm0
mulss xmm3, xmm0
movss dword [esp + 0x14], xmm2
movss xmm2, dword [esp + 0x18]
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x50], xmm3
mov dword [esp + 0x148], eax
mulss xmm2, xmm0
movss dword [esp + 0x18], xmm2
call fcn.00484d4c
mov ecx, eax
mov edx, 0x811bc4
mov esi, eax
call fcn.00411f2d
movss xmm0, dword [esp + 0x20]
movss xmm1, dword [esp + 0xc]
subss xmm0, dword [esi]
subss xmm1, dword [esi + 4]
cvtss2sd xmm1, xmm1
cvtss2sd xmm0, xmm0
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
fstp dword [esp + 0x3d0]
mov ecx, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x3d0]
cmp dword [ecx], 2
jne 0x4622c8
xor eax, eax
cmp dword [esp + 0x3c8], 0
movsd xmm1, qword [esp + 0x90]
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x70]
je 0x4612b9
mov al, 2
cmp edx, 2
jne 0x462258
mov ecx, dword [esp + 0x30]
xor eax, eax
test edi, edi
mov dword [esp + 0x128], ebx
movss dword [esp + 0x30], xmm2
setne al
and dword [esp + 0x12c], 0
mov dword [esp + 0x130], edi
add eax, eax
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], ebx
and dword [esp + 0x13c], 0
mov dword [esp + 0x140], edi
lea edi, [esp + 0x128]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
mov ecx, edi
call fcn.00484d4c
mov ecx, eax
mov edx, 0x811bd4
mov esi, eax
call fcn.00411f2d
movss xmm0, dword [esi]
mov ecx, edi
movaps xmmword [esp + 0xa0], xmm0
movss xmm0, dword [esi + 4]
movaps xmmword [esp + 0x70], xmm0
call fcn.00484d4c
mov ecx, eax
mov edx, 0x811be4
mov esi, eax
call fcn.00411f2d
movaps xmm2, xmmword [esp + 0xa0]
movaps xmm4, xmmword [esp + 0x70]
movaps xmm0, xmmword [0x6461e0]
mov cl, 2
movsd xmm1, qword [esp + 0x90]
subss xmm2, dword [esi]
subss xmm4, dword [esi + 4]
mov esi, dword [esp + 0x88]
andps xmm2, xmm0
andps xmm4, xmm0
movaps xmm0, xmm2
movaps xmm3, xmm2
movss xmm2, dword [0x646408]
mulss xmm0, xmm2
ucomiss xmm4, xmm0
mulss xmm4, xmm2
movss xmm2, dword [esp + 0x30]
seta al
sub cl, al
ucomiss xmm3, xmm4
movzx eax, cl
mov ecx, 0
cmova eax, ecx
mov ecx, dword [esp + 0x1c]
and dword [ecx], 0
movsd qword [ecx + 0x20], xmm1
movss xmm0, dword [esp + 0x3c4]
movss xmm1, dword [esp + 0x3c0]
movss xmm3, dword [esp + 0x50]
movss dword [ecx + 0x28], xmm0
movss dword [ecx + 0x2c], xmm1
movss xmm1, dword [esp + 0x18]
movss dword [ecx + 0x30], xmm3
movss xmm3, dword [esp + 0x20]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [esp + 0xc]
movss dword [ecx + 0x38], xmm3
movss xmm3, dword [esp + 0x14]
movss dword [ecx + 0x3c], xmm1
movss xmm1, dword [esp + 0x10]
movss dword [ecx + 0x40], xmm3
movss dword [ecx + 0x44], xmm1
movss dword [ecx + 0x48], xmm2
mov byte [ecx + 0x4c], al
jmp 0x462340
mov eax, dword [ecx + 0x48]
movss xmm3, dword [esp + 0x50]
mov esi, dword [esp + 0x88]
mov dword [ecx + 0x1c], eax
movsd xmm0, qword [ecx + 0x40]
movsd qword [ecx + 0x14], xmm0
movsd xmm1, qword [ecx + 0x38]
movsd xmm0, qword [ecx + 0x30]
movsd qword [ecx + 0xc], xmm1
movss xmm1, dword [esp + 0x18]
movsd qword [ecx + 4], xmm0
mov dword [ecx], 1
movss dword [ecx + 0x30], xmm3
movss xmm3, dword [esp + 0x20]
movss dword [ecx + 0x34], xmm1
movss xmm1, dword [esp + 0xc]
movss dword [ecx + 0x38], xmm3
movss xmm3, dword [esp + 0x14]
movss dword [ecx + 0x3c], xmm1
movss xmm1, dword [esp + 0x10]
movss dword [ecx + 0x40], xmm3
movss dword [ecx + 0x44], xmm1
movss dword [ecx + 0x48], xmm2
xor eax, eax
cmp byte [esp + 0x28], 0
je 0x4612b9
mov dword [ecx], eax
xor eax, eax
jmp 0x4612b9
lea eax, [esp + 0x4d0]
push 0x98
push eax
lea eax, [esp + 0x130]
push eax
call sub.VCRUNTIME140.dll_memcpy
movsd xmm0, qword [esp + 0x9c]
add esp, 0xc
lea ecx, [esp + 0x1ac]
mov esi, dword [esp + 0x6c]
movsd qword [ecx - 0x4c], xmm0
and dword [ecx + 8], 0
xor ebx, ebx
movss xmm1, dword [ecx - 0x20]
mov eax, dword [ecx - 0x24]
inc ebx
movss dword [esp + 0x18], xmm1
movss xmm1, dword [ecx - 0x1c]
mov dword [esp + 0x10], eax
movss dword [esp + 0x14], xmm1
movsd xmm1, qword [ecx - 0x24]
movsd qword [ecx - 0x18], xmm1
mov eax, dword [ecx - 0x1c]
mov dword [ecx - 0x10], eax
cmp esi, dword [esp + 0x34]
je 0x462721
mov edi, esi
add esi, 0x50
mov eax, dword [edi]
add eax, 0xfffffff8
cmp eax, 0x10
push 0x10
pop ecx
cmovae eax, ecx
cmp eax, 5
je 0x4624e5
cmp eax, 7
je 0x4624d8
cmp eax, 6
jne 0x4623c0
mov al, byte [edi + 0x12]
mov cl, byte [edi + 0xc]
movss xmm2, dword [edi + 4]
movss xmm1, dword [edi + 8]
mov dl, byte [edi + 0xd]
mov esi, dword [edi + 0xe]
mov dword [esp + 0x188], ebx
test al, al
movss dword [esp + 0x18c], xmm2
movss dword [esp + 0x190], xmm1
mov dword [esp + 0x194], ebx
movss dword [esp + 0x198], xmm2
movss dword [esp + 0x19c], xmm1
mov byte [esp + 0x20], al
mov byte [esp + 0xc], cl
je 0x4625dc
cmp dword [esp + 0x144], 0
je 0x46245e
and dword [esp + 0x144], 0
and dword [esp + 0x140], 0
mov dword [esp + 0x1a0], ebx
movss dword [esp + 0x1a4], xmm2
movss dword [esp + 0x1a8], xmm1
and dword [esp + 0x12c], 0
movss dword [esp + 0x314], xmm2
movss dword [esp + 0x318], xmm1
mov byte [esp + 0x311], cl
lea ecx, [esp + 0x1ac]
lea edx, [esp + 0x310]
mov dword [esp + 0x128], ebx
movsd qword [esp + 0x130], xmm0
mov byte [esp + 0x1bd], 0
mov byte [esp + 0x310], 1
call fcn.00493e86
jmp 0x4626fe
and dword [esp + 0x188], 0
jmp 0x4623c0
movss xmm2, dword [edi + 4]
movss xmm3, dword [edi + 8]
mov dword [esp + 0x188], ebx
movss dword [esp + 0x18c], xmm2
movss dword [esp + 0x190], xmm3
mov dword [esp + 0x194], ebx
movss dword [esp + 0x198], xmm2
movss dword [esp + 0x19c], xmm3
cmp dword [esp + 0x1a0], 0
je 0x4625a1
movss xmm0, dword [esp + 0x1a4]
movss xmm1, dword [esp + 0x1a8]
subss xmm0, xmm2
subss xmm1, xmm3
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
movss dword [esp + 0x14], xmm2
movss dword [esp + 0x28], xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
movss xmm3, dword [esp + 0x28]
movss xmm2, dword [esp + 0x14]
add esp, 8
fstp dword [esp + 0x3cc]
movss xmm0, dword [esp + 0x3cc]
ucomiss xmm0, dword [0x646428]
seta al
cmp byte [esp + 0x1bd], 0
setne cl
or cl, al
mov byte [esp + 0x1bd], cl
lea ecx, [esp + 0x1ac]
lea edx, [esp + 0x310]
movss dword [esp + 0x314], xmm2
movss dword [esp + 0x318], xmm3
mov byte [esp + 0x310], 0
call fcn.00493e86
movsd xmm0, qword [esp + 0x90]
jmp 0x4623c0
lea ecx, [esp + 0x128]
mov byte [esp + 0x38], dl
movss dword [esp + 0xa0], xmm2
movss dword [esp + 0x70], xmm1
call fcn.00493e0f
mov edx, dword [esp + 0x50]
movss xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x28]
mov cl, 2
test al, al
je 0x462685
movsd xmm3, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x178]
movsd xmm4, qword [str.333333]
xor edx, edx
movapd xmm2, xmm3
movapd xmm0, xmm3
subsd xmm2, xmm1
subsd xmm0, qword [esp + 0x180]
ucomisd xmm4, xmm2
movsd xmm4, qword [0x646420]
seta dl
inc edx
ucomisd xmm4, xmm0
push 3
pop eax
movsd qword [esp + 0x180], xmm1
mov cl, byte [esp + 0x38]
movss xmm0, dword [esp + 0xa0]
movss xmm1, dword [esp + 0x70]
cmova edx, eax
movsd qword [esp + 0x178], xmm3
mov dword [esp + 0x30], esi
movss dword [esp + 0x314], xmm0
movss dword [esp + 0x318], xmm1
mov dword [esp + 0x31c], edx
mov byte [esp + 0x320], cl
mov eax, dword [esp + 0x30]
mov cl, byte [esp + 0xc]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x310]
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x28], xmm1
mov dword [esp + 0x321], eax
mov byte [esp + 0x311], cl
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x310], 2
call fcn.00493e86
and dword [esp + 0x1a0], 0
and dword [esp + 0x12c], 0
and dword [esp + 0x128], 0
movzx eax, byte [esp + 0xc]
mov cl, byte [esp + 0x20]
movsd xmm0, qword [esp + 0x90]
add edi, 0x50
mov esi, edi
mov byte [esp + eax + 0x1b8], cl
jmp 0x4623c0
lea esi, [esp + 0x138]
cmp dword [esp + 0x10], 1
mov eax, dword [esi + 0x50]
jne 0x46276f
cmp eax, 1
jne 0x46276f
movss xmm3, dword [esp + 0x18c]
movss xmm4, dword [esp + 0x190]
movaps xmm2, xmm3
movaps xmm1, xmm4
subss xmm2, dword [esp + 0x18]
subss xmm1, dword [esp + 0x14]
movss dword [esp + 0x168], xmm2
movss dword [esp + 0x16c], xmm1
jmp 0x462799
and dword [esp + 0x168], 0
and dword [esp + 0x16c], 0
test eax, eax
je 0x462836
movss xmm3, dword [esp + 0x18c]
movss xmm4, dword [esp + 0x190]
add dword [esp + 0x148], 1
adc dword [esp + 0x14c], 0
mov ecx, dword [esp + 0x13c]
mov eax, dword [esp + 0x144]
cmp eax, ecx
jne 0x4627f1
mov ecx, esi
movss dword [esp + 0xc], xmm3
movss dword [esp + 0x20], xmm4
call fcn.004877a1
movss xmm4, dword [esp + 0x20]
movss xmm3, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x90]
mov ecx, dword [esp + 0x13c]
mov eax, dword [esp + 0x144]
mov edx, dword [esp + 0x140]
xor edi, edi
add edx, eax
cmp edx, ecx
cmovae edi, ecx
mov ecx, dword [esp + 0x138]
inc eax
sub edx, edi
shl edx, 4
movsd qword [ecx + edx], xmm0
movss dword [ecx + edx + 8], xmm3
movss dword [ecx + edx + 0xc], xmm4
mov ecx, esi
mov dword [esp + 0x144], eax
call fcn.00487b01
movsd xmm0, qword [esp + 0x90]
mov ecx, esi
call fcn.00487b01
cmp dword [esp + 0x144], 3
xorps xmm2, xmm2
jb 0x4628da
mov ecx, esi
call fcn.00487811
mov ecx, esi
mov edi, eax
call fcn.0048767b
test edi, edi
je 0x4643a9
test eax, eax
xorps xmm2, xmm2
je 0x4628da
movsd xmm0, qword [eax]
subsd xmm0, qword [edi]
cvtsd2ss xmm0, xmm0
ucomiss xmm0, dword [0x64642c]
jbe 0x4628da
mov ecx, esi
call fcn.00487811
mov ecx, esi
mov edi, eax
call fcn.0048767b
test edi, edi
je 0x4643a9
mov esi, dword [esp + 0x34]
test eax, eax
xorps xmm0, xmm0
xorps xmm2, xmm2
je 0x4628e1
movsd xmm0, qword [eax]
subsd xmm0, qword [edi]
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm1, xmm2
jbe 0x4628e1
movss xmm2, dword [eax + 8]
movss xmm0, dword [eax + 0xc]
subss xmm2, dword [edi + 8]
subss xmm0, dword [edi + 0xc]
divss xmm2, xmm1
divss xmm0, xmm1
jmp 0x4628e1
mov esi, dword [esp + 0x34]
xorps xmm0, xmm0
movss dword [esp + 0x170], xmm2
movss dword [esp + 0x174], xmm0
push 0x98
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x318]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x580]
lea eax, [esp + 0x2b0]
movsd xmm1, qword [esp + 0x570]
mov ecx, dword [esp + 0x6c]
movsd qword [eax + 8], xmm0
movsd xmm0, qword [esp + 0x578]
movsd qword [eax - 8], xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [esp + 0x568]
movsd qword [eax - 0x10], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x1c], xmm0
push 0x10
pop edi
movsd xmm2, qword [esp + 0x90]
mov edx, esi
cmp ecx, edx
je 0x462b91
mov ebx, ecx
add ecx, 0x50
mov eax, dword [ebx]
add eax, 0xfffffff8
cmp eax, 0x10
cmovae eax, edi
cmp eax, 4
je 0x4629b3
cmp eax, 8
je 0x462b2d
cmp eax, 9
jne 0x46296f
movss xmm0, dword [esp + 0xcc]
mulss xmm0, dword [ebx + 4]
movss dword [esp + 0xcc], xmm0
jmp 0x46296f
cmp byte [ebx + 4], 0
mov dword [esp + 0xc], ecx
je 0x462aaa
movzx eax, byte [ebx + 0xb]
mov ecx, dword [esp + 0x2b0]
mov edx, dword [esp + 0x2b4]
mov byte [esp + 0x128], al
push eax
push dword [esp + 0x2c0]
push dword [esp + 0x2c0]
call fcn.00485abf
add esp, 0xc
mov esi, edx
mov edi, eax
mov edx, eax
lea eax, [esp + 0x128]
lea ecx, [esp + 0x2a0]
push eax
push esi
call fcn.0048886a
pop ecx
pop edx
test eax, eax
jne 0x462a8b
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x128]
mov ecx, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
mov byte [esp + 0x14], al
mov dword [esp + 0x18], ecx
push esi
mov dword [esp + 0x24], edi
push edi
call fcn.004c21d1
pop ecx
pop edx
mov edx, dword [esp + 0x18]
mov edi, eax
cmp dword [esp + 0x2a8], 0
mov cl, byte [edx + edi]
jne 0x462a5d
mov eax, ecx
and al, 1
jne 0x462b54
movzx eax, cl
lea ecx, [esp + 0x2a0]
mov edx, edi
push esi
push dword [esp + 0x24]
push eax
call fcn.0047cb53
add esp, 0xc
mov eax, dword [esp + 0x2a0]
mov cl, byte [esp + 0x14]
not edi
mov byte [edi + eax], cl
mov eax, dword [esp + 0x10]
movsd xmm2, qword [esp + 0x90]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0xc]
test eax, eax
setne byte [ebx + 5]
push 0x10
pop edi
jmp 0x46296f
add ebx, 0xb
mov ecx, dword [esp + 0x2b0]
mov edx, dword [esp + 0x2b4]
movzx eax, byte [ebx]
push eax
push dword [esp + 0x2c0]
push dword [esp + 0x2c0]
call fcn.00485abf
add esp, 0xc
mov esi, edx
lea ecx, [esp + 0x2a0]
mov edx, eax
push ebx
push esi
call fcn.0048886a
pop ecx
pop edx
movsd xmm2, qword [esp + 0x90]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x46296f
mov esi, edx
mov edx, dword [esp + 0x2a0]
lea ecx, [esp + 0x2a0]
sub edx, eax
call fcn.0057d973
mov ecx, dword [esp + 0xc]
movsd xmm2, qword [esp + 0x90]
mov edx, esi
jmp 0x46296f
movss xmm0, dword [esp + 0x50]
movss xmm1, dword [esp + 0x1c]
addss xmm0, dword [ebx + 4]
addss xmm1, dword [ebx + 8]
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x1c], xmm1
jmp 0x46296f
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x2a0]
lea edx, [esp + 0x2b0]
call fcn.0063df95
mov ecx, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
push esi
push dword [esp + 0x24]
call fcn.004c21d1
mov cl, byte [esp + 0x20]
add esp, 8
mov edi, eax
jmp 0x462a5d
cmp byte [esp + 0x5d8], 0
mov al, byte [esp + 0xc8]
mov esi, dword [esp + 0xc4]
setne dl
cmp byte [esp + 0x6b], 0
mov byte [esp + 0x3fc], al
mov dword [esp + 0x3f8], esi
setne cl
xor cl, dl
mov edx, dword [esp + 0x124]
jne 0x462bed
mov eax, dword [esp + 0x6c]
test edx, edx
je 0x462c5e
mov ecx, dword [eax]
add eax, 0x50
add ecx, 0xfffffff8
cmp ecx, 0x10
cmovae ecx, edi
add edx, 0xffffffb0
cmp ecx, 0xf
jne 0x462bcf
and dword [esp + 0x3f8], 0
lea esi, [esp + 0x128]
mov byte [esp + 0x3fc], 0
mov ecx, esi
call fcn.0048846d
mov ecx, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
call fcn.0047d8b8
movsd xmm1, qword [esi + 0x10]
movsd xmm2, qword [esp + 0x90]
movsd xmm0, qword [esi + 0x18]
movsd xmm3, qword [esi]
movsd qword [esp + 0x2b0], xmm1
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x2b8], xmm0
movsd qword [esp + 0x2a0], xmm3
movsd qword [esp + 0x2a8], xmm1
movapd xmm0, xmm2
cmp byte [esp + 0x8f], 0
movss xmm1, dword [esp + 0xd4]
subsd xmm0, qword [esp + 0x460]
cvtsd2ss xmm0, xmm0
je 0x462c85
movaps xmm1, xmm0
movss dword [esp + 0x20], xmm1
movss dword [esp + 0xc], xmm0
lea esi, [esp + 0x190]
push 0x98
lea eax, [esp + 0x314]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x5b4]
movss xmm2, dword [esp + 0xfc]
movss xmm1, dword [esp + 0x100]
cmp dword [esp + 0xd8], 0
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
movsd qword [esi + 0xe4], xmm0
mov dword [esi + 0xec], eax
movss dword [esi + 0xc0], xmm2
movss dword [esi + 0xc4], xmm1
movss xmm2, dword [esp + 0x104]
movss xmm1, dword [esp + 0x3b0]
movss dword [esi + 0xc8], xmm2
movss dword [esi + 0xcc], xmm1
je 0x462d23
movss xmm0, dword [esp + 0xd0]
jmp 0x462d2c
movss xmm0, dword [esp + 0x5c4]
cmp dword [esp + 0x10c], 0
movss dword [esp + 0x10], xmm0
jne 0x462d4a
mov eax, dword [esp + 0x5c8]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x3f8]
mov cl, byte [esp + 0x3fc]
movsd xmm1, qword [esp + 0x2a8]
mov esi, 0x140
lea ebx, [esp + 0x128]
movsd xmm0, qword [esp + 0x2a0]
movsd xmm2, qword [esp + 0x2b0]
mov edi, dword [esp + 0x118]
mov byte [esp + 0x29d], cl
mov dword [esp + 0x299], eax
lea ecx, [ebx + esi]
movsd qword [esp + 0x230], xmm1
movsd xmm1, qword [esp + 0x2b8]
mov ebx, dword [esp + 0x6c]
movsd qword [esp + 0x228], xmm0
movsd qword [esp + 0x238], xmm2
movsd qword [esp + 0x240], xmm1
mov edx, ebx
push edi
call fcn.00487ba4
pop eax
mov eax, dword [esp + 0x11c]
movsd xmm0, qword [esp + 0x3f0]
movss xmm2, dword [esp + 0xe4]
movss xmm1, dword [esp + 0xe0]
mov cl, byte [esp + 0x6b]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0xd8]
movsd qword [esp + 0x130], xmm0
movss xmm0, dword [esp + 0xd0]
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x114]
movss dword [esp + 0x13c], xmm0
movss xmm0, dword [esp + 0xe8]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x148], eax
movss dword [esp + 0x14c], xmm0
movss dword [esp + 0x150], xmm2
movss xmm2, dword [esp + 0xec]
movss dword [esp + 0x154], xmm1
mov eax, dword [esp + 0x3b4]
movsd xmm1, qword [esp + 0x3d8]
movss dword [esp + 0x158], xmm2
movsd xmm2, qword [esp + 0x3e0]
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edi
movsd qword [esp + 0x168], xmm1
movsd xmm1, qword [esp + 0x3e8]
mov eax, dword [esp + 0xc4]
lea edi, [esp + 0x468]
movsd qword [esp + 0x170], xmm2
movss xmm2, dword [esp + 0xd4]
movsd qword [esp + 0x178], xmm1
movss xmm1, dword [esp + 0x50]
movss dword [esp + 0x180], xmm2
mov dword [esp + 0x184], eax
mov al, byte [esp + 0xc8]
mov byte [esp + 0x188], al
mov eax, dword [esp + 0x308]
mov byte [esp + 0x189], cl
mov dword [esp + 0x18a], eax
movzx eax, word [esp + 0x30c]
mov word [esp + 0x18e], ax
movss dword [esp + 0x248], xmm1
movss xmm1, dword [esp + 0x1c]
mov eax, dword [esp + 0x108]
movss dword [esp + 0x24c], xmm1
movss xmm1, dword [esp + 0xcc]
movss dword [esp + 0x280], xmm1
movss xmm1, dword [esp + 0x10]
movss dword [esp + 0x284], xmm1
movsd xmm1, qword [esp + 0x90]
mov dword [esp + 0x288], eax
movsd qword [esp + 0x260], xmm1
movss xmm1, dword [esp + 0xc]
movss dword [esp + 0x28c], xmm1
movss xmm1, dword [esp + 0x20]
movss dword [esp + 0x290], xmm2
movss dword [esp + 0x294], xmm1
mov byte [esp + 0x298], cl
mov ecx, edi
call fcn.0047d87b
add esi, edi
mov ecx, esi
call fcn.0047d8e8
mov esi, dword [esp + 0x110]
mov ecx, esi
call fcn.0047d313
push 0x178
lea eax, [esp + 0x12c]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x48]
lea ecx, [esi + 0x3f0]
lea edi, [esi + 0x458]
call fcn.00488ac8
movsd xmm0, qword [esi + 0x360]
mov eax, 0x7f800000
mov ecx, edi
movsd qword [esi + 0x428], xmm0
movsd xmm1, qword [esi + 0x358]
movsd qword [esi + 0x420], xmm1
movsd qword [esi + 0x430], xmm1
movsd qword [esi + 0x438], xmm0
mov dword [esi + 0x440], eax
mov dword [esi + 0x444], eax
mov eax, 0xff800000
mov dword [esi + 0x448], eax
mov dword [esi + 0x44c], eax
and dword [esi + 0x3ac], 0
and dword [esi + 0x3a8], 0
mov al, 2
movss xmm0, dword [esi + 0x350]
movss xmm1, dword [esi + 0x354]
movss dword [esi + 0x450], xmm0
movss dword [esi + 0x454], xmm1
mov byte [esi + 0x3d8], al
mov byte [esi + 0x3e8], al
call fcn.0047d5dd
and dword [esi + 0x458], 0
movsd xmm0, qword [esi + 0x410]
movsd xmm1, qword [esi + 0x418]
movsd qword [esp + 0x130], xmm1
movsd qword [esp + 0x128], xmm0
mov dword [esi + 0x410], 0xa38ef0
and dword [esi + 0x414], 0
and dword [esi + 0x418], 0
and dword [esi + 0x41c], 0
mov ecx, dword [esi + 0x400]
mov edx, dword [esi + 0x404]
call fcn.0047d678
movsd xmm0, qword [esp + 0x128]
movsd xmm1, qword [esp + 0x130]
xor ecx, ecx
mov dword [esp + 0x28], edi
movsd qword [esi + 0x408], xmm1
movsd qword [esi + 0x400], xmm0
mov eax, dword [esi + 0x1f0]
and dword [esi + 0x1f0], 0
movss xmm0, dword [esi + 0x38c]
cmp eax, ecx
mov ecx, dword [esi + 0x390]
movss dword [esp + 0x10], xmm0
mov dword [esp + 0x14], ecx
je 0x4631a3
movsd xmm1, qword [esi + 0x204]
lea edx, [esp + 0x2a0]
movsd qword [edx + 0x10], xmm1
movsd xmm2, qword [esi + 0x1f4]
movsd xmm1, qword [esi + 0x1fc]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm2
call fcn.004ab4a8
lea ecx, [esi + 0x6c8]
mov edi, eax
mov dword [esp + 0x20], ecx
call fcn.0047d29e
mov dword [esi + 0x6c8], edi
mov esi, edi
jmp 0x4631e1
lea ebx, [esi + 0x6c8]
mov esi, dword [esi + 0x6c8]
mov dword [esp + 0x20], ebx
test esi, esi
jne 0x4631e1
lea esi, [esp + 0x128]
mov ecx, esi
call fcn.004ab097
movss xmm0, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.004ab4a8
mov ecx, ebx
mov esi, eax
call fcn.0047d29e
mov dword [ebx], esi
lea ecx, [esi + 8]
mov dword [esp + 0x18], ecx
call fcn.0048b226
mov ebx, dword [esi + 0xa0]
movss xmm0, dword [esi + 0xa4]
mov edi, dword [esi + 0xa8]
mov dword [esp + 0xc], esi
lea esi, [ebx + 8]
movaps xmmword [esp + 0x50], xmm0
mov ecx, esi
call fcn.0048b226
cmp byte [ebx + 0x48], 0
je 0x46322a
movss xmm0, dword [0x646138]
movss dword [esp + 0x1c], xmm0
jmp 0x463263
mov eax, dword [ebx + 0x44]
movq xmm1, qword [0x6461f8]
add eax, dword [ebx + 0x40]
movd xmm0, eax
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm2, xmm0
movss xmm0, dword [ebx + 0x18]
orpd xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
divss xmm2, xmm0
movss dword [esp + 0x1c], xmm2
mov ecx, esi
call fcn.00473405
mov eax, dword [esp + 0x14]
movss xmm0, dword [esp + 0x10]
cmp edi, eax
jne 0x4632c1
movaps xmm1, xmmword [esp + 0x50]
subss xmm1, xmm0
andps xmm1, xmmword [0x6461e0]
ucomiss xmm1, dword [0x646430]
ja 0x4632c1
movss xmm1, dword [esp + 0x1c]
ucomiss xmm1, dword [0x646434]
ja 0x4632c1
mov esi, dword [esp + 0xc]
mov edi, dword [esi + 0xc0]
mov eax, dword [esi + 0xb0]
mov edx, dword [esi + 0xb4]
mov ecx, dword [esi + 0xbc]
jmp 0x4633d6
mov edi, dword [esp + 0xc]
lea ecx, [edi + 0xa0]
lea edx, [edi + 0x88]
mov dword [esp + 0x1c], ecx
lea ecx, [edi + 0x10]
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x310]
call fcn.004a8f51
lea ebx, [edi + 0x94]
lea esi, [esp + 0x31c]
mov ecx, esi
mov edx, ebx
call fcn.004a8f86
movsd xmm0, qword [esi + 4]
movsd xmm1, qword [esi - 4]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x468]
movsd qword [esp + 0x478], xmm0
movsd xmm0, qword [esi - 0xc]
lea esi, [esp + 0x128]
movsd qword [esp + 0x470], xmm1
mov ecx, esi
movsd qword [esp + 0x468], xmm0
movss xmm0, dword [esp + 0x10]
push eax
call fcn.004ab552
pop eax
mov ecx, dword [esp + 0x30]
call fcn.004a8fbb
mov ecx, ebx
call fcn.004a9104
mov ecx, dword [esp + 0x1c]
call fcn.0047e023
lea ecx, [edi + 0x40]
call fcn.0047e023
lea ecx, [edi + 0x48]
call fcn.004a923f
mov ebx, dword [esp + 0x50]
mov ecx, ebx
call fcn.004a8af7
lea ecx, [edi + 0x58]
call fcn.004a8879
lea ecx, [edi + 0xb0]
call fcn.004a87f9
push 0xa0
push esi
mov esi, edi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [edi + 0xb0], 0xa38ef0
and dword [edi + 0xb8], 0
and dword [edi + 0xb4], 0
and dword [edi + 0xc0], 0
and dword [edi + 0xbc], 0
mov eax, 0xa38ef0
xor ecx, ecx
xor edx, edx
xor edi, edi
movdqa xmm0, xmmword [eax]
lea ebx, [esp + 0x128]
lea edx, [edx + eax + 1]
add esi, 0xb0
mov dword [ebx], eax
add eax, 0x10
mov dword [ebx + 4], eax
mov dword [ebx + 8], edx
pmovmskb eax, xmm0
not eax
mov word [ebx + 0xc], ax
mov dword [ebx + 0x10], ecx
lea ecx, [esp + 0x128]
call fcn.0042e306
test eax, eax
je 0x463434
cmp dword [eax - 4], edi
mov ebx, eax
je 0x463403
mov edx, dword [esi]
mov ecx, esi
sub edx, ebx
sar edx, 4
call fcn.0057d973
add ebx, 0xfffffff8
mov ecx, ebx
call fcn.0047cb44
jmp 0x463403
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
inc dword [eax + 0xc0]
call fcn.00473405
mov edi, dword [esp + 0x48]
cmp byte [edi + 0x225], 0
je 0x46354e
mov edi, dword [edi + 0x20c]
xor edx, edx
mov eax, dword [edi + 0x204]
mov ecx, dword [edi + 0x208]
test eax, eax
mov esi, eax
setne dl
je 0x46347b
mov esi, dword [edi + 0x20c]
lea edi, [esp + 0x468]
lea ebx, [esp + 0x128]
mov dword [edi], edx
and dword [edi + 4], 0
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], edx
and dword [edi + 0x14], 0
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], esi
lea esi, [esp + 0x310]
lea ecx, [esp + 0x468]
call fcn.00484a07
test eax, eax
je 0x46354a
mov edi, edx
test edx, edx
je 0x46354a
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
call fcn.0048b217
lea ecx, [eax + 8]
mov edx, edi
mov dword [esp + 0xc], eax
call fcn.004acb47
mov edi, eax
mov dword [esp + 0x310], 0x20
mov dword [esp + 0x314], 0x7e
mov byte [esp + 0x318], 0
mov ecx, esi
call fcn.004a3f48
test eax, eax
je 0x46351e
movzx eax, dl
mov ecx, ebx
mov edx, edi
push eax
call fcn.004aafed
pop eax
jmp 0x463503
mov ecx, ebx
mov edx, edi
push 0xb0
call fcn.004aafed
pop eax
mov ecx, ebx
mov edx, edi
push 0x2022
call fcn.004aafed
pop eax
mov ecx, dword [esp + 0xc]
call fcn.00473405
jmp 0x4634ac
mov edi, dword [esp + 0x48]
movss xmm0, dword [edi + 0x358]
movss xmm1, dword [edi + 0x35c]
movss xmm2, dword [edi + 0x360]
movss xmm3, dword [edi + 0x364]
lea ecx, [edi + 0x140]
movss dword [esp + 0x128], xmm0
movss dword [esp + 0x12c], xmm1
and word [esp + 0x138], 0
subss xmm2, xmm0
subss xmm3, xmm1
movss dword [esp + 0x130], xmm2
movss dword [esp + 0x134], xmm3
mov byte [esp + 0x13a], 1
sub esp, 0xc
and dword [esp + 4], 0
and dword [esp], 0
xor edx, edx
lea ebx, [esp + 0x134]
inc edx
mov dword [esp + 8], ebx
mov dword [esp + 0x4c], edx
call fcn.00488bcf
add esp, 0xc
cmp byte [edi + 0x6d8], 0
je 0x463822
call fcn.00493e49
lea ecx, [esp + 0x468]
mov ebx, eax
mov esi, edx
call fcn.00493e57
cvtss2sd xmm0, dword [edi + 0x38c]
movsd qword [esp + 0x20], xmm0
push 0x30
pop ecx
push 8
pop edx
call fcn.004a3937
movsd xmm0, qword [esp + 0x20]
movsd qword [eax], xmm0
and dword [eax + 0xc], 0
and dword [eax + 8], 0
and dword [eax + 0x14], 0
and dword [eax + 0x10], 0
movsd qword [eax + 0x18], xmm0
and dword [eax + 0x24], 0
and dword [eax + 0x20], 0
and dword [eax + 0x2c], 0
and dword [eax + 0x28], 0
mov dword [esp + 0x12c], eax
mov byte [esp + 0x128], 0x19
push 0x5b
pop edx
lea eax, [esp + 0x128]
lea ecx, [esp + 0x468]
push eax
call fcn.0042c624
pop eax
lea ecx, [esp + 0x310]
lea eax, [esp + 0x2a0]
mov dword [esp + 0x2a4], esi
mov dword [esp + 0x2a0], ebx
mov edx, ebx
mov dword [ecx], 0xa38ef0
and dword [ecx + 4], 0
and dword [ecx + 8], 0
and dword [ecx + 0xc], 0
push eax
push esi
call fcn.0047f230
pop ecx
pop edx
test eax, eax
mov dword [esp + 0xc], esi
je 0x4636eb
add eax, 8
push 0x1d
pop edx
lea edi, [esp + 0x128]
mov ecx, edx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, eax
lea esi, [esp + 0x468]
mov ecx, edx
lea eax, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
cmp byte [eax + 0x73], 0xb8
je 0x4637aa
lea ecx, [esp + 0x128]
call fcn.0047d85d
jmp 0x4637aa
mov eax, dword [esp + 0x2a0]
mov edi, dword [esp + 0x310]
mov edx, dword [esp + 0x314]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2a4]
mov ecx, edi
mov dword [esp + 0x14], eax
push esi
mov dword [esp + 0x24], ebx
push ebx
call fcn.004c21d1
pop ecx
pop edx
mov bl, byte [edi + eax]
cmp dword [esp + 0x318], 0
mov esi, eax
jne 0x463759
mov eax, ebx
and al, 1
je 0x463759
lea esi, [esp + 0x310]
mov ecx, esi
mov edx, esi
call fcn.0047f2a6
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push dword [esp + 0xc]
push dword [esp + 0x24]
call fcn.004c21d1
pop ecx
pop edx
mov esi, eax
lea edi, [esp + 0x310]
movzx eax, bl
mov edx, esi
mov ecx, edi
push dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
push ebx
push eax
call fcn.0047cb53
add esp, 0xc
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
shl esi, 7
mov edi, eax
sub edi, esi
neg esi
mov dword [eax + esi - 0x80], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi - 0x7c], ecx
add edi, 0xffffff88
push 0x1d
pop ecx
lea esi, [esp + 0x468]
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x19b], 0xb8
movsd xmm0, qword [esp + 0x310]
movsd xmm1, qword [esp + 0x318]
movsd qword [esp + 0x130], xmm1
movsd qword [esp + 0x128], xmm0
push 8
pop ecx
mov edx, ecx
call fcn.004a3937
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x28]
mov esi, eax
mov dword [esi], ebx
mov dword [esi + 4], ecx
mov ecx, edi
call fcn.0047d5dd
movsd xmm0, qword [esp + 0x128]
movsd xmm1, qword [esp + 0x130]
mov eax, dword [esp + 0x48]
xor ecx, ecx
inc ecx
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
mov dword [eax + 0x468], esi
mov dword [eax + 0x46c], ecx
mov dword [eax + 0x470], ecx
mov ecx, dword [esp + 0x3b8]
call fcn.00473841
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
push dword [ecx + 8]
mov esi, dword [esp + 0x3c0]
push esi
push dword [ecx]
call dword [eax + 0xc]
add esp, 0xc
mov edi, dword [esi]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
cmp dword [edi + 0x324], 0
mov dword [esp + 0x44], esi
je 0x463fd8
mov ecx, esi
call fcn.0047eb86
mov ecx, edi
call fcn.00489e21
mov ecx, esi
call fcn.0047e405
mov eax, dword [edi + 0x110]
mov ecx, dword [edi + 0x114]
lea esi, [esp + 0x128]
mov edx, dword [edi + 0x11c]
mov dword [esp + 0x2c], edi
movdqa xmm0, xmmword [eax]
lea ecx, [ecx + eax + 1]
mov dword [esi], eax
add eax, 0x10
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
pmovmskb eax, xmm0
not eax
mov word [esi + 0xc], ax
mov dword [esi + 0x10], edx
mov ecx, esi
call fcn.0042e306
test eax, eax
je 0x4638d6
mov ecx, eax
add ecx, 0xfffffff8
je 0x4638d6
mov ecx, dword [eax - 4]
push dword [eax - 8]
call dword [ecx + 0x10]
add esp, 4
jmp 0x4638b6
mov ebx, dword [esp + 0x2c]
lea ecx, [ebx + 0x1b0]
lea edx, [ebx + 0x150]
lea eax, [ebx + 0x180]
mov dword [esp + 0x60], ecx
push 0xc
pop ecx
lea edi, [esp + 0x128]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
push 0xc
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
push 0xc
pop ecx
mov edi, eax
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.00488ac8
mov edi, dword [ebx + 0x1e8]
mov eax, dword [ebx + 0x1e0]
mov ecx, dword [esp + 0x60]
cmp edi, 0x15
mov dword [esp + 0x38], eax
mov dword [esp + 0x468], ecx
jae 0x463961
cmp edi, 2
jb 0x463e22
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x468]
mov edx, edi
push eax
push 1
call fcn.00485f98
pop eax
pop ecx
jmp 0x463e22
mov al, byte [0xa71040]
lea ecx, [edi*8]
and ecx, 0x7ffffff0
push 8
pop edx
call fcn.004041e0
test eax, eax
mov dword [esp + 0x20], eax
je 0x464e00
push 0x10
pop ecx
call fcn.00485f87
test eax, eax
je 0x464e12
mov ebx, eax
mov eax, dword [esp + 0x38]
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x50], edi
add eax, 0x10
mov dword [esp + 0x64], eax
push 0x10
pop eax
mov edx, edi
sub edx, ecx
jbe 0x463e0c
cmp edx, 2
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], ecx
jae 0x4639d1
mov eax, edi
jmp 0x463b53
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], ebx
mov ebx, ecx
mov dword [esp + 0x10], edx
lea ecx, [esp + 0x468]
shl ebx, 4
add eax, ebx
lea edx, [eax + 0x10]
push eax
call fcn.004860b8
pop ecx
test al, al
mov byte [esp + 0xc], al
je 0x463a2c
add ebx, dword [esp + 0x64]
push 2
pop edi
mov edx, dword [esp + 0x10]
cmp edx, edi
je 0x463a61
lea esi, [ebx + 0x10]
lea ecx, [esp + 0x468]
mov edx, esi
push ebx
call fcn.004860b8
pop ecx
test al, al
je 0x463a5b
mov ebx, esi
mov esi, dword [esp + 0x14]
inc edi
jmp 0x463a04
add ebx, dword [esp + 0x64]
push 2
pop edi
mov edx, dword [esp + 0x10]
cmp edx, edi
je 0x463a61
lea esi, [ebx + 0x10]
lea ecx, [esp + 0x468]
mov edx, esi
push ebx
call fcn.004860b8
pop ecx
test al, al
jne 0x463a5b
mov ebx, esi
mov esi, dword [esp + 0x14]
inc edi
jmp 0x463a33
mov esi, dword [esp + 0x14]
mov edx, edi
mov ecx, dword [esp + 0x28]
cmp byte [esp + 0xc], 0
mov edi, dword [esp + 0x50]
lea eax, [edx + ecx]
je 0x463b39
mov dword [esp + 0x10], edx
mov dword [esp + 0x3c], eax
mov edx, eax
push 0xa0ef48
push edi
push dword [esp + 0x40]
call fcn.00485f50
add esp, 0xc
mov edi, edx
shl edx, 4
shr edi, 1
add edx, eax
mov ecx, edi
shl ecx, 4
sub edx, ecx
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov edx, edi
push 0xa144a0
push edi
push eax
call fcn.00485f50
add esp, 0xc
mov ebx, eax
xor ecx, ecx
mov dword [esp + 0x70], edx
mov edx, edi
push 0xa144b0
push edi
push dword [esp + 0x24]
call fcn.00485f50
add esp, 0xc
mov ecx, dword [esp + 0xc]
add ebx, 8
dec edi
mov dword [esp + 0x1c], edx
lea eax, [eax + ecx - 8]
mov ecx, dword [esp + 0x70]
cmp edi, 0xffffffff
je 0x463b3f
sub ecx, 1
jb 0x4643b8
cmp edi, dword [esp + 0x1c]
jae 0x4643c5
mov dword [esp + 0xc], edi
mov edi, dword [ebx - 8]
movq xmm0, qword [eax - 8]
mov dh, byte [eax]
mov esi, dword [ebx - 4]
mov dl, byte [ebx]
movq qword [ebx - 8], xmm0
mov byte [ebx], dh
mov dword [eax - 8], edi
mov edi, dword [esp + 0xc]
mov dword [eax - 4], esi
mov esi, dword [esp + 0x14]
mov byte [eax], dl
add ebx, 0x10
add eax, 0xfffffff0
dec edi
jmp 0x463aee
mov ebx, dword [esp + 0x18]
jmp 0x463b53
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
cmp eax, ecx
jb 0x464d8d
cmp eax, edi
ja 0x464d8d
jae 0x463bb9
cmp edx, 0xa
jae 0x463bb9
lea eax, [ecx + 0xa]
cmp eax, edi
cmovae eax, edi
cmp edx, 2
mov dword [esp + 0x3c], eax
mov eax, 1
cmovb edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
push 0xa0f014
push edi
push dword [esp + 0x40]
call fcn.00485f50
add esp, 0xc
mov ecx, eax
lea eax, [esp + 0x468]
push eax
push dword [esp + 0x14]
call fcn.00485f98
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
add esp, 8
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
cmp esi, edx
jne 0x463c07
lea ecx, [edx + edx]
mov dword [esp + 0x4c], ecx
call fcn.00485f87
test eax, eax
je 0x464dd5
mov esi, eax
mov eax, dword [esp + 0x30]
shl eax, 3
push eax
push ebx
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, ebx
push 4
pop edx
call fcn.00404240
mov ebx, esi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
jmp 0x463c0b
mov dword [esp + 0x4c], edx
sub eax, ecx
mov dword [esp + 0x18], ebx
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], ecx
inc esi
mov edx, esi
mov ecx, ebx
push edi
call fcn.004ecd19
pop ecx
cmp eax, 1
jne 0x463dff
mov ecx, ebx
mov edi, edx
mov ebx, esi
mov edx, esi
push 0xa0ef58
push edi
call fcn.004bd666
pop ecx
pop edx
mov edx, ebx
mov ebx, dword [eax + 4]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax]
mov dword [esp + 0x28], edi
inc edi
mov dword [esp + 0x14], edx
push 0xa0ef68
mov dword [esp + 0x20], edi
push edi
call fcn.004bd666
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x30], ebx
mov dword [esp + 0xa0], ecx
add edx, ecx
mov ecx, ebx
push 0xa0ef78
push dword [esp + 0x54]
push dword [esp + 0x40]
call fcn.00485f50
add esp, 0xc
mov ebx, esi
mov ecx, edx
sub edx, esi
mov dword [esp + 0x70], esi
mov dword [esp + 0xc], eax
shl ebx, 4
shl ecx, 4
cmp edx, esi
lea edi, [eax + ebx]
jae 0x463d25
shl edx, 4
push edx
push edi
mov esi, dword [esp + 0x28]
push esi
mov dword [esp + 0x1c], ecx
mov ebx, edx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x10]
add ebx, esi
lea esi, [eax + ecx - 0x10]
cmp edi, eax
jbe 0x463d8e
cmp ebx, dword [esp + 0x20]
jbe 0x463d8e
lea eax, [edi - 0x10]
lea edx, [ebx - 0x10]
lea ecx, [esp + 0x468]
push eax
call fcn.004860b8
pop ecx
movzx ecx, al
shl ecx, 4
lea ebx, [ebx + ecx - 0x10]
sub edi, ecx
test al, al
mov eax, ebx
cmovne eax, edi
movq xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0xc]
movq qword [esi], xmm0
movsd qword [esi + 8], xmm1
add esi, 0xfffffff0
jmp 0x463cd1
add ecx, eax
mov dword [esp + 0x10], ecx
push ebx
push eax
mov esi, dword [esp + 0x28]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, esi
cmp esi, ebx
jae 0x463d94
cmp edi, dword [esp + 0x10]
jae 0x463d94
lea ecx, [esp + 0x468]
mov edx, edi
push esi
call fcn.004860b8
pop ecx
test al, al
mov ecx, esi
movzx edx, al
cmovne ecx, edi
xor al, 1
shl edx, 4
movq xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0xc]
movzx eax, al
add edi, edx
shl eax, 4
add esi, eax
movq qword [ecx], xmm0
movsd qword [ecx + 8], xmm1
add ecx, 0x10
mov dword [esp + 0xc], ecx
jmp 0x463d3c
mov esi, dword [esp + 0x20]
jmp 0x463d98
mov edi, dword [esp + 0xc]
sub ebx, esi
push ebx
push esi
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jbe 0x464ce8
mov edi, dword [esp + 0xa0]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov esi, eax
add edi, dword [esp + 0x70]
cmp esi, edx
mov dword [ebx + edx*8 + 8], edi
mov dword [ebx + edx*8 + 0xc], ecx
jbe 0x464cf6
lea eax, [ebx + edx*8]
lea ecx, [ebx + edx*8 + 8]
not edx
add edx, esi
shl edx, 3
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov edi, dword [esp + 0x50]
dec esi
jmp 0x463c19
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
jmp 0x4639af
push 4
pop edx
mov ecx, ebx
call fcn.00404240
push 8
pop edx
mov ecx, dword [esp + 0x20]
call fcn.00404240
mov ecx, dword [esp + 0x60]
call fcn.00488ac8
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x30]
or eax, dword [ecx + 0x34]
je 0x463eb3
mov esi, dword [ecx + 0x38]
mov edi, dword [ecx + 0x3c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], edi
mov ecx, dword [eax + 0x40]
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x44]
push edi
push esi
push 0
push 1
mov eax, dword [esp + 0x3c]
push dword [eax + 0x4c]
mov eax, dword [esp + 0x40]
push dword [eax + 0x48]
call fcn.0048d238
mov ecx, dword [esp + 0x44]
add esp, 0x18
test al, al
jne 0x463eb3
cmp dword [ecx + 0x3fc], 0
je 0x463eab
mov eax, dword [esp + 0x2c]
mov edx, esi
lea ecx, [eax + 0x3f0]
lea eax, [esp + 0x128]
push eax
push edi
call fcn.004822e3
mov ecx, dword [esp + 0x34]
add esp, 8
test eax, eax
jne 0x463eb3
and dword [ecx + 0x34], 0
and dword [ecx + 0x30], 0
mov edi, dword [ecx + 0x324]
mov esi, dword [ecx + 0x31c]
mov ecx, esi
mov edx, edi
call fcn.0048a19b
test al, al
jne 0x463ede
imul eax, edi, 0x18
test eax, eax
je 0x463efe
add eax, 0xffffffe8
cmp byte [esi], 2
lea esi, [esi + 0x18]
jne 0x463ecf
mov eax, dword [esp + 0x2c]
and dword [eax + 0x94], 0
and dword [eax + 0x90], 0
and dword [eax + 0xa4], 0
and dword [eax + 0xa0], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x6c8]
test ecx, ecx
je 0x464de7
call fcn.0048b217
mov edi, dword [eax + 0x98]
mov esi, eax
lea ebx, [edi + 8]
mov ecx, ebx
call fcn.0048b226
movsd xmm0, qword [edi + 0x2c]
movsd xmm1, qword [edi + 0x34]
lea ecx, [esp + 0x468]
mov edx, 0x98cd64
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
or dword [edi + 0x2c], 0xffffffff
or dword [edi + 0x30], 0xffffffff
and dword [edi + 0x34], 0
and dword [edi + 0x38], 0
call fcn.004acb1f
test al, al
mov byte [esp + 0x38], al
mov dword [esp + 0x70], esi
mov dword [esp + 0xa0], ebx
je 0x463f77
push 2
pop eax
mov dword [esp + 0x40], eax
jmp 0x463fd3
lea ecx, [esp + 0x468]
mov edx, 0x98cd24
call fcn.004acb1f
test al, al
je 0x464057
mov eax, dword [edi + 0x1c]
mov ebx, dword [edi + 0xc]
xor edx, edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x18]
mov edi, dword [edi + 0x14]
mov ecx, edi
mov dword [esp + 0x4c], eax
call fcn.0042a655
mov esi, edx
lea ecx, [edi*4]
mov dword [esp + 0x3c], edi
push ecx
push ebx
mov dword [esp + 0x20], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov bl, 1
jmp 0x4641ab
movss xmm1, dword [edi + 0x2d8]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jne 0x463864
jp 0x463864
movss xmm1, dword [edi + 0x2dc]
ucomiss xmm1, xmm0
jne 0x463864
jp 0x463864
movss xmm1, dword [edi + 0x350]
ucomiss xmm1, xmm0
jne 0x463864
jp 0x463864
movss xmm1, dword [edi + 0x354]
ucomiss xmm1, xmm0
jne 0x463864
jp 0x463864
mov ecx, dword [esp + 0x44]
mov esi, dword [edi + 0x378]
call fcn.0047eb86
test esi, esi
mov esi, dword [esp + 0x44]
jne 0x46386b
jmp 0x463872
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0x470]
cmp edx, eax
mov dword [esp + 0x50], eax
ja 0x464e2f
mov ecx, dword [esp + 0x474]
cmp ecx, dword [edi + 0x1c]
ja 0x464e41
mov esi, dword [esp + 0x468]
mov ebx, dword [esp + 0x46c]
mov eax, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], edx
xor edx, edx
sub eax, esi
sub ecx, ebx
mov dword [esp + 0x34], esi
xor esi, esi
mov dword [esp + 0x64], ecx
imul ecx, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], ecx
call fcn.0042a655
lea ecx, [esp + 0x310]
mov dword [esp + 0x18], eax
mov dword [esp + 0x60], ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x14]
mov edi, dword [esp + 0x50]
imul edi, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], edx
add eax, edi
add edi, dword [esp + 0x34]
cmp ebx, dword [esp + 0x1c]
jae 0x46417d
mov dword [esp + 0xc], eax
inc ebx
mov ecx, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x20], ebx
push 0x833fc0
push dword [esp + 0x34]
push dword [esp + 0x30]
call fcn.004a660c
add esp, 0xc
lea ecx, [edx*4]
mov dword [esp + 0x10], eax
mov esi, edx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x310]
call fcn.0042a555
mov eax, dword [esp + 0x310]
mov ebx, dword [esp + 0x318]
mov dword [esp + 0x18], eax
lea eax, [eax + ebx*4]
push dword [esp + 0x14]
push dword [esp + 0x14]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x18]
add esp, 0xc
add ebx, esi
mov ecx, dword [esp + 0x50]
mov esi, ebx
mov dword [esp + 0x318], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
add edi, ecx
jmp 0x4640ec
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3f8], esi
cmp esi, eax
mov dword [esp + 0x2a0], eax
jne 0x464e53
xor ebx, ebx
xor edi, edi
mov esi, dword [esp + 0x314]
inc edi
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0xa0]
call fcn.00473405
mov ecx, dword [esp + 0x70]
call fcn.00473405
cmp byte [esp + 0x38], 0
jne 0x4644c3
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x470], esi
mov dword [esp + 0x474], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x478], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x47c], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x480], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x484], edi
mov dword [esp + 0x488], edx
mov word [esp + 0x48c], 0x101
mov edi, dword [ecx + 0x6c4]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
xorpd xmm0, xmm0
movapd xmmword [esp + 0x310], xmm0
cmp dword [edi + 0x1c], 0
je 0x464398
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x20]
lea edi, [eax + 0x10]
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x20]
sub esp, 0xc
and dword [esp + 8], 0
and dword [esp + 4], 0
and dword [esp], 0
xor edx, edx
call fcn.004a6b8d
add esp, 0xc
lea ecx, [esp + 0x310]
mov dword [esp + 0x18], esi
mov esi, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2a0], ecx
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x128], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x12c], edi
mov edx, dword [edx + 0x14]
mov ecx, dword [ecx + 0x10]
push 0x4a97ae
lea edi, [esp + 0x12c]
push edi
mov edi, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0x24]
push eax
call fcn.004a4151
add esp, 0x10
test eax, eax
je 0x464398
mov eax, dword [edi + 0x10]
test eax, eax
je 0x464398
test bl, 1
je 0x464450
neg edx
mov dword [esp + 0x10], 0
imul ecx, edx, 0x30
mov edx, dword [esp + 0x47c]
add eax, ecx
mov ecx, dword [esp + 0x478]
mov dword [eax - 0x10], edx
mov dword [eax - 0x14], ecx
mov dword [eax - 0xc], 4
lea ecx, [esp + 0x128]
lea eax, [esp + 0x310]
mov dword [ecx], eax
mov eax, dword [edi + 0x48]
and dword [edi + 0x48], 0
mov dword [esp + 0x14], eax
push 0xffffffffffffffd8
pop ebx
xor esi, esi
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x4643d8
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x128]
mov edi, dword [eax + 0x40]
mov edx, dword [edi + ebx + 0x28]
push dword [edi + ebx + 0x34]
push dword [edi + ebx + 0x30]
push dword [edi + ebx + 0x2c]
call fcn.004a844e
add esp, 0xc
inc esi
add ebx, 0x38
test al, al
jne 0x464344
add edi, ebx
mov ecx, edi
call fcn.004a6414
xor eax, eax
mov edi, dword [esp + 0x20]
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
jmp 0x4643de
lea ecx, [esp + 0x468]
call fcn.004a6414
jmp 0x4644bc
mov esi, dword [esp + 0x34]
xorps xmm0, xmm0
xorps xmm2, xmm2
jmp 0x4628e1
mov ecx, dword [esp + 0x70]
mov edx, ecx
push 0xa144c0
jmp 0x4643d0
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0xa144d0
call fcn.0063cc20
pop eax
ud2
mov edi, dword [esp + 0x20]
mov esi, eax
imul ebx, esi, 0x38
sub eax, esi
add ebx, 0x10
sub eax, 1
jb 0x464445
mov esi, dword [edi + 0x40]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x128]
mov edx, dword [esi + ebx - 0x10]
push dword [esi + ebx - 4]
push dword [esi + ebx - 8]
push dword [esi + ebx - 0xc]
call fcn.004a844e
add esp, 0xc
test al, al
je 0x46442f
imul eax, dword [esp + 0x10], 0xffffffc8
add eax, esi
lea esi, [esi + ebx - 0x10]
lea edi, [ebx + eax - 0x10]
push 0xe
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
jmp 0x46443c
inc dword [esp + 0x10]
add esi, ebx
mov ecx, esi
call fcn.004a6414
mov eax, dword [esp + 0xc]
add ebx, 0x38
jmp 0x4643e6
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x10]
mov dword [edi + 0x48], eax
mov eax, dword [esp + 0x310]
mov edx, dword [esp + 0x31c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x314]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x318]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x138]
push 0xa
pop ecx
mov ebx, edi
lea esi, [esp + 0x468]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add ebx, 0x40
mov ecx, dword [esp + 0x10]
mov dword [eax - 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax - 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax - 4], edx
lea edx, [esp + 0x128]
mov dword [eax - 8], ecx
mov ecx, ebx
call fcn.004a9e7b
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.00473841
mov eax, dword [esp + 0x2c]
mov edi, dword [eax + 0x6c4]
push 8
pop ebx
lea esi, [edi + ebx]
mov ecx, esi
call fcn.0047e405
movsd xmm0, qword [edi + 0x50]
mov ecx, esi
movsd qword [esp + 0x408], xmm0
movq xmm0, qword [edi + 0x40]
movsd xmm1, qword [edi + 0x48]
movsd qword [esp + 0x400], xmm1
movq qword [esp + 0x3f8], xmm0
mov dword [edi + 0x40], ebx
and dword [edi + 0x44], 0
and dword [edi + 0x48], 0
mov dword [edi + 0x4c], ebx
and dword [edi + 0x50], 0
and dword [edi + 0x54], 0
call fcn.00473841
mov ebx, dword [esp + 0x44]
mov ecx, ebx
call fcn.00473841
mov ecx, ebx
call fcn.0047e405
mov eax, dword [esp + 0x2c]
lea esi, [eax + 0x478]
push 0x1e
pop ecx
lea edi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
mov esi, ebx
mov edi, eax
and dword [eax + 0x4a8], 0
mov byte [eax + 0x4c4], 2
mov dword [eax + 0x4c8], 1
and dword [eax + 0x4cc], 0
and dword [eax + 0x4d0], 0
push 8
pop eax
mov dword [edi + 0x4d4], eax
and dword [edi + 0x4d8], 0
and dword [edi + 0x4dc], 0
and dword [edi + 0x4e0], 0
and word [edi + 0x4ec], 0
mov ecx, ebx
call fcn.00473841
mov ecx, ebx
call fcn.0047e405
mov ecx, dword [edi + 0x464]
mov eax, dword [edi + 0x45c]
mov edx, dword [edi + 0x468]
mov ebx, dword [edi + 0x458]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0x46c]
and dword [edi + 0x458], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], ecx
mov ecx, esi
call fcn.00473841
test ebx, ebx
je 0x4649e4
mov ecx, esi
call fcn.0047eb6d
mov al, byte [edi + 0x291]
mov ecx, esi
mov byte [esp + 0x70], al
call fcn.0047eb86
call fcn.00493e49
lea edi, [esp + 0x658]
mov esi, edx
mov edx, eax
mov ecx, edi
push esi
call fcn.0047f1ff
pop eax
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edi]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], eax
call fcn.0047e405
movdqa xmm0, xmmword [ebx]
mov edx, dword [esp + 0xc]
lea esi, [ebx + 0x10]
pmovmskb ecx, xmm0
lea eax, [ebx + edx + 1]
test edx, edx
not ecx
mov dword [esp + 0x10], eax
je 0x464695
mov eax, edx
inc edx
cmp edx, 0x1ffffff
ja 0x46467d
shl edx, 7
add eax, 0x11
add eax, edx
jb 0x46467d
cmp eax, 0x7ffffff1
mov dword [esp + 0xc], eax
jb 0x464688
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xbc]
mov edi, ebx
sub edi, edx
jmp 0x464697
xor eax, eax
lea edx, [esp + 0x310]
mov dword [edx], edi
mov dword [edx + 4], eax
mov eax, dword [esp + 0xc]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0xc], ebx
mov dword [edx + 0x10], esi
lea esi, [esp + 0x468]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x20]
mov word [edx + 0x18], cx
mov ecx, esi
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x2c]
add eax, 0x6cc
mov dword [edx + 0x20], eax
call fcn.00484e1a
mov eax, dword [esi]
mov ecx, dword [esi + 4]
or ecx, dword [esi + 0xc]
or eax, dword [esi + 8]
or eax, ecx
je 0x4648c6
mov ebx, dword [esp + 0x32c]
xor eax, eax
dec eax
inc ebx
cmove ebx, eax
cmp ebx, 5
push 4
pop eax
cmovb ebx, eax
xor ecx, ecx
cmp ebx, 0x4000000
setb al
jae 0x464df9
mov esi, ebx
shl esi, 5
js 0x464df9
mov cl, al
mov edx, esi
shl ecx, 3
mov edi, ecx
call fcn.0043bd7b
test eax, eax
je 0x464e24
lea edi, [esp + 0x468]
movq xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd xmm2, qword [edi + 0x10]
movsd xmm3, qword [edi + 0x18]
movsd qword [eax + 0x18], xmm3
movsd qword [eax + 0x10], xmm2
movsd qword [eax + 8], xmm1
movq qword [eax], xmm0
push 9
pop ecx
lea esi, [esp + 0x310]
rep movsd dword es:[edi], dword [esi]
mov esi, eax
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
push 0x20
pop edi
lea ecx, [esp + 0x2a0]
lea edx, [esp + 0x468]
call fcn.00484e1a
mov eax, dword [esp + 0x2a0]
mov ecx, dword [esp + 0x2a4]
or ecx, dword [esp + 0x2ac]
or eax, dword [esp + 0x2a8]
or eax, ecx
je 0x4648b8
mov eax, dword [esp + 0xc]
cmp eax, ebx
jne 0x464870
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x484]
mov eax, 0xffffffff
inc edi
cmove edi, eax
xor ecx, ecx
add edi, ebx
jb 0x464861
lea eax, [ebx + ebx]
cmp eax, edi
cmova edi, eax
cmp edi, 5
jae 0x4647ee
push 4
pop edi
xor edx, edx
cmp edi, 0x4000000
mov eax, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x5e0], esi
lea ecx, [esp + 0x3d8]
lea ebx, [esp + 0x5e0]
setb dl
shl eax, 5
mov dword [esp + 0x5e8], eax
mov eax, edi
shl edx, 3
mov dword [esp + 0x5e4], 8
shl eax, 5
push ebx
push eax
call fcn.0056691c
pop eax
pop ecx
cmp dword [esp + 0x3d8], 0
mov ecx, dword [esp + 0x3dc]
je 0x464858
mov edi, dword [esp + 0x3e0]
mov ebx, dword [esp + 0x10]
jmp 0x464861
mov esi, ecx
mov ebx, edi
mov ecx, 0x80000001
mov edx, edi
call fcn.00427d90
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x2b8]
inc eax
mov dword [esp + 0xc], eax
movsd qword [esi + edi + 0x18], xmm0
movsd xmm0, qword [esp + 0x2b0]
movsd qword [esi + edi + 0x10], xmm0
movq xmm0, qword [esp + 0x2a0]
movsd xmm1, qword [esp + 0x2a8]
movsd qword [esi + edi + 8], xmm1
movq qword [esi + edi], xmm0
add edi, 0x20
jmp 0x46477d
lea ecx, [esp + 0x468]
call fcn.00484ed4
jmp 0x4648df
lea ecx, [esp + 0x310]
call fcn.00484ed4
xor ebx, ebx
mov dword [esp + 0xc], 0
push 8
pop esi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x44]
mov ecx, esi
call fcn.00473841
cmp byte [esp + 0x70], 0
je 0x464953
mov ecx, esi
call fcn.0047eb6d
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x38]
mov edi, dword [eax + 0x34]
mov dword [esp + 0x10], ecx
mov ecx, esi
mov esi, dword [eax + 0x30]
mov dword [esp + 0x70], edx
call fcn.0047eb86
or edi, esi
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
je 0x46495b
mov edx, dword [esp + 0x70]
lea esi, [esp + 0x648]
mov ecx, esi
push dword [esp + 0x10]
call fcn.0047f1ff
pop eax
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edi, dword [esi]
mov esi, dword [esi + 4]
jmp 0x46495b
xor edi, edi
xor esi, esi
xor ecx, ecx
xor edx, edx
mov dword [esp + 0xa0], esi
lea esi, [esp + 0x128]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x70], edx
mov ecx, esi
call fcn.0047d6c5
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esi], edx
mov dword [esi + 8], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xa0]
mov dword [esi + 4], eax
mov dword [esi + 0xc], edx
and dword [esi + 0x1c], 0
and dword [esi + 0x18], 0
and dword [esi + 0x14], 0
and dword [esi + 0x10], 0
mov dword [esi + 0x24], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
mov dword [esi + 0x20], edi
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
call fcn.0051df9b
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov ecx, esi
call fcn.0047e405
mov eax, dword [edi + 0x510]
mov ecx, edi
test eax, eax
je 0x464a06
dec eax
xor edx, edx
xor edi, edi
mov dword [ecx + 0x510], eax
xor eax, eax
jmp 0x464a18
mov eax, dword [ecx + 0x4f0]
mov edi, dword [ecx + 0x4f4]
mov edx, dword [ecx + 0x4f8]
mov dword [esp + 0x30], eax
or eax, edi
or dword [ecx + 0x4f4], 0xffffffff
or dword [ecx + 0x4f0], 0xffffffff
mov dword [ecx + 0x4f8], 0x3b9ac9ff
mov dword [esp + 0x70], edi
mov edi, ecx
mov dword [esp + 0x28], edx
or eax, edx
sete byte [ecx + 0x514]
add dword [ecx + 0x500], 1
adc dword [ecx + 0x504], 0
mov ecx, esi
call fcn.00473841
mov ecx, esi
call fcn.0047e405
lea eax, [edi + 0x538]
lea ecx, [esp + 0x310]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x1e0]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x1e8]
mov dword [ecx], 8
and dword [ecx + 4], 0
and dword [ecx + 8], 0
shl eax, 4
mov dword [esp + 0x1c], eax
mov eax, 0x811c54
lea ecx, str.cargo_registry_srcindex.crates.io_6f17d22bba15001fegui_0.22.0_src_response.rs__tooltipassertion_failed:_self.ctx__other.ctx
cmp eax, ecx
je 0x464c47
mov dword [esp + 0x14], eax
movzx eax, byte [eax]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], eax
shl eax, 4
mov ecx, dword [edi + eax]
mov edx, dword [edi + eax + 4]
mov esi, dword [edi + eax + 0xc]
add edi, eax
movdqa xmm0, xmmword [ecx]
lea edx, [edx + ecx + 1]
mov dword [esp + 0x468], ecx
add ecx, 0x10
mov dword [esp + 0x46c], ecx
mov dword [esp + 0x470], edx
pmovmskb ecx, xmm0
not ecx
mov word [esp + 0x474], cx
mov dword [esp + 0x478], esi
push 0x18
pop esi
lea ecx, [esp + 0x468]
call fcn.0047ce71
test eax, eax
je 0x464b39
cmp dword [eax - 8], 0
mov ebx, eax
jne 0x464b05
mov eax, dword [edi]
mov ecx, edi
sub eax, ebx
cdq
idiv esi
mov edx, eax
call fcn.0057d973
add ebx, 0xfffffff0
mov ecx, ebx
call fcn.0047d7d0
jmp 0x464b05
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
test ebx, ebx
je 0x464bd5
cmp byte [esi + 8], cl
jne 0x464bca
cmp dword [edi + 0xc], 0
je 0x464bca
mov eax, dword [esi]
lea ecx, [esp + 0x2a0]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x468], ecx
mov dword [esp + 0x2a0], esi
mov dword [esp + 0x46c], edi
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x20], eax
push 0x482324
lea eax, [esp + 0x46c]
push eax
push dword [esp + 0x28]
push dword [esp + 0x18]
call fcn.004a4151
mov ecx, dword [esp + 0x20]
add esp, 0x10
test eax, eax
je 0x464bca
mov eax, dword [edi]
test eax, eax
je 0x464bca
neg edx
imul ecx, edx, 0x18
lea edx, [eax + ecx - 0x10]
lea ecx, [esp + 0x310]
call fcn.00493db3
mov ecx, dword [esp + 0x10]
add esi, 0x10
add ebx, 0xfffffff0
jmp 0x464b45
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov esi, dword [edi + 0xc]
lea edi, [esp + 0x310]
movdqa xmm0, xmmword [eax]
lea ecx, [ecx + eax + 1]
mov dword [esp + 0x468], eax
add eax, 0x10
mov dword [esp + 0x46c], eax
mov dword [esp + 0x470], ecx
pmovmskb edx, xmm0
not edx
mov word [esp + 0x474], dx
mov dword [esp + 0x478], esi
mov esi, dword [esp + 0x44]
lea ecx, [esp + 0x468]
call fcn.0047ce71
test eax, eax
je 0x464c3d
add eax, 0xfffffff0
je 0x464c3d
mov ecx, edi
mov edx, eax
call fcn.00493db3
jmp 0x464c1d
mov eax, dword [esp + 0x14]
inc eax
jmp 0x464aa0
mov eax, dword [esp + 0x310]
mov ebx, dword [esp + 0x3ac]
mov ecx, dword [esp + 0x314]
mov edx, dword [esp + 0x318]
mov dword [ebx + 0xa0], eax
mov dword [ebx + 0xa4], ecx
mov ecx, esi
mov dword [ebx + 0xa8], edx
call fcn.00473841
lea edi, [ebx + 0x28]
push 0x1e
pop ecx
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [esp + 0x408]
movsd xmm2, qword [esp + 0x3f8]
movsd xmm1, qword [esp + 0x400]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
movsd qword [ebx + 0x20], xmm0
movsd qword [ebx + 0x18], xmm1
movsd qword [ebx + 0x10], xmm2
mov dword [ebx + 4], eax
mov dword [ebx], edx
mov dword [ebx + 8], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9ec6c0
call fcn.0063cd70
jmp 0x4643d5
lea ecx, [esp + 0x128]
mov edx, 0xa0ef88
jmp 0x464d02
lea ecx, [esp + 0x128]
mov edx, 0xa0efc8
mov dword [ecx], 0xa0ecd0
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
call fcn.0063cbf0
ud2
push 0x35
pop edx
mov ecx, str.assertion_failed:_edge.height__self.node.height___1
push 0xa0aa70
jmp 0x464cde
push 0xc
pop edx
mov ecx, eax
push 0xa0aa28
call fcn.0063cd00
jmp 0x4643d5
push 0x21
pop edx
mov ecx, str.assertion_failed:_self.height___0
push 0xa0a9d0
jmp 0x464cde
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x81162c
jmp 0x464cde
push 0x20
pop edx
mov ecx, str.assertion_failed:_idx___CAPACITY_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_alloc_srccollections_btree_node.rsassertion_failed:_edge.height__self.height___1
push 0x9ec6a0
jmp 0x464cde
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9e9728
jmp 0x464cde
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0xa0f004
jmp 0x464cde
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0a878
jmp 0x464cde
push 0x30
pop edx
mov ecx, 0xa0a903
push 0xa0a934
jmp 0x464cde
push 0x20
pop edx
mov ecx, str.assertion_failed:_idx___CAPACITY_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_alloc_srccollections_btree_node.rsassertion_failed:_edge.height__self.height___1
push 0xa0a944
jmp 0x464cde
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0efb8
jmp 0x464cde
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x811a14
jmp 0x464cde
call fcn.0043aad0
ud2
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0ef98
jmp 0x464cde
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0efa8
jmp 0x464cde
mov ecx, edi
mov edx, esi
call fcn.0063c970
ud2
push 0x27
pop edx
mov ecx, 0x833f50
push 0x833f78
jmp 0x464cde
push 0x28
pop edx
mov ecx, str.assertion_failed:_y__h___self.height__
push 0x833fb0
jmp 0x464cde
and dword [esp + 0x128], 0
lea edx, [esp + 0x3f8]
xor ecx, ecx
push 0x833fd0
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x2a8]
push eax
call fcn.006409c3
add esp, 0xc
ud2
push 0xc
pop edx
jmp 0x464d39
push 0x28
pop edx
mov ecx, str.assertion_failed:_src.len____dst.len__
push 0xa0aa08
jmp 0x464cde