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

Disassembly:
sub esp, 0x178
mov eax, dword [0x803100]
xor eax, esp
mov dword [esp + 0x174], eax
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x188]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x188]
push edi
mov edi, dword [esp + 0x1a0]
mov dword [esp + 0x50], esi
cmp dword [esi + 0x7608], 1
mov dword [esp + 0xc0], ecx
jne 0x631355
mov eax, dword [esi + 0x7600]
jmp 0x63135e
mov eax, dword [esp + 0x194]
add eax, ecx
mov ebp, dword [esi + 0x7604]
mov ebx, ecx
mov ecx, dword [esi + 0x7578]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x74b0]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x74b4]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x74b8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x48], eax
test edi, edi
je 0x6332cf
push 8
pop eax
push dword [esp + 0x19c]
cmp edi, eax
mov dword [esi + 0x750c], 1
push edx
cmovl eax, edi
add esi, 0x682c
lea edi, [esp + 0x120]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0xf4]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0062cb5e
add esp, 0xc
cmp eax, 0xffffff88
jbe 0x6313f1
push 0xffffffffffffffec
pop ebx
jmp 0x63332d
mov ebx, dword [esp + 0x50]
lea eax, [esp + 0xec]
push dword [ebx]
push eax
lea eax, [esp + 0x108]
push eax
call fcn.00636009
push dword [ebx + 8]
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.00636009
push dword [ebx + 4]
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x130]
push eax
call fcn.00636009
mov ebp, dword [esp + 0x118]
lea eax, [esp + 0x148]
mov ebx, dword [esp + 0x114]
add esp, 0x24
mov dword [esp + 0x64], eax
xor edx, edx
mov eax, dword [esp + 0xec]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x40], edx
cmp ebx, 0x20
jbe 0x63147a
push 3
pop esi
jmp 0x631532
cmp ebp, dword [esp + 0xfc]
jb 0x6314b9
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ebx
push 4
lea eax, [esp + 0x8c]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov eax, dword [esp + 0x94]
add esp, 0xc
xor esi, esi
jmp 0x631511
mov ecx, dword [esp + 0xf8]
cmp ebp, ecx
jne 0x6314ce
cmp ebx, 0x20
sbb esi, esi
add esi, 2
jmp 0x631539
mov edx, ebx
mov eax, ebp
shr edx, 3
xor esi, esi
sub eax, edx
cmp eax, ecx
jae 0x6314e2
mov edx, ebp
sub edx, ecx
inc esi
imul eax, edx, 0xfffffff8
sub ebp, edx
push 4
push ebp
mov dword [esp + 0xfc], ebp
add ebx, eax
lea eax, [esp + 0xcc]
push eax
mov dword [esp + 0xfc], ebx
call fcn.0064a810
mov eax, dword [esp + 0xd0]
add esp, 0xc
mov ebx, dword [esp + 0xf0]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0xec], eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0xf8]
cmp edx, dword [esp + 0x44]
jge 0x631b8a
cmp esi, 2
ja 0x6313e9
mov ecx, dword [esp + 0x114]
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x100]
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x10c]
mov ebx, dword [ecx + esi*8 + 4]
mov esi, ebx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x6c], esi
mov esi, dword [ebx + edi*8 + 4]
mov cl, byte [ebx + edi*8 + 2]
mov dword [esp + 0x60], esi
mov dword [esp + 0x68], esi
mov esi, dword [eax + edx*8 + 4]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x110]
mov byte [esp + 0x2b], cl
mov ecx, dword [esp + 0x114]
mov bl, byte [ecx + esi*8 + 2]
mov byte [esp + 0x3b], bl
mov bl, byte [eax + edx*8 + 2]
mov byte [esp + 0x3a], bl
mov ebx, dword [esp + 0x104]
movzx esi, word [ebx + edi*8]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x110]
movzx ebx, word [ecx + esi*8]
movzx ecx, byte [ecx + esi*8 + 3]
mov dword [esp + 0x80], ebx
movzx ebx, word [eax + edx*8]
movzx eax, byte [eax + edx*8 + 3]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x84], eax
mov al, byte [esp + 0x3a]
mov dword [esp + 0x7c], ecx
movzx edi, byte [ebx + edi*8 + 3]
mov dword [esp + 0x5c], edi
cmp al, 1
jbe 0x6317d7
cmp dword [esp + 0x1a4], 0
je 0x6316ed
cmp al, 0x19
jb 0x6316ed
movzx eax, al
sub eax, 5
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.006305bc
mov esi, dword [esp + 0xf8]
mov edi, eax
shl edi, 5
add edi, dword [esp + 0x20]
pop ecx
pop ecx
cmp esi, 0x20
ja 0x6316bf
mov ecx, dword [esp + 0xf4]
cmp ecx, dword [esp + 0xfc]
jb 0x631678
lea eax, [esp + 0xec]
push eax
call fcn.0062cc78
jmp 0x6316be
cmp ecx, dword [esp + 0xf8]
je 0x6316bf
mov edx, esi
mov eax, ecx
shr edx, 3
sub eax, edx
cmp eax, dword [esp + 0xf8]
jae 0x63169c
mov edx, ecx
sub edx, dword [esp + 0xf8]
imul eax, edx, 0xfffffff8
sub ecx, edx
push ecx
mov dword [esp + 0xf8], ecx
add esi, eax
mov dword [esp + 0xf4], esi
call fcn.006294ce
mov dword [esp + 0xf0], eax
pop ecx
lea eax, [esp + 0xec]
push 5
push eax
call fcn.006305bc
pop ecx
add edi, eax
mov esi, dword [esp + 0xf4]
pop ecx
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
jmp 0x6317ab
movzx eax, al
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.006305bc
pop ecx
pop ecx
mov ecx, dword [esp + 0xf0]
mov edi, eax
add edi, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp ecx, 0x20
ja 0x63179c
mov ebp, dword [esp + 0xf4]
cmp ebp, dword [esp + 0xfc]
jb 0x631739
lea eax, [esp + 0xec]
push eax
call fcn.0062cc78
jmp 0x6316d1
mov esi, dword [esp + 0xf8]
cmp ebp, esi
je 0x63178b
mov edx, ecx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, esi
jae 0x631755
mov edx, ebp
sub edx, esi
imul eax, edx, 0xfffffff8
sub ebp, edx
push ebp
mov dword [esp + 0xf8], ebp
add ecx, eax
mov dword [esp + 0xf4], ecx
call fcn.006294ce
mov esi, dword [esp + 0xf4]
pop ecx
mov ecx, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0xec], ecx
jmp 0x6317ab
mov esi, dword [esp + 0xec]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x14]
jmp 0x6317b2
mov esi, dword [esp + 0xec]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0xf4]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x10]
jmp 0x631871
mov ecx, dword [esp + 0x60]
xor ebx, ebx
test ecx, ecx
sete bl
test al, al
jne 0x631803
mov edi, dword [esp + ebx*4 + 0x118]
mov eax, ecx
mov esi, dword [esp + 0x14]
neg eax
sbb eax, eax
and eax, 4
mov eax, dword [esp + eax + 0x118]
jmp 0x6317c7
lea eax, [esp + 0xec]
push 1
push eax
call fcn.006305bc
mov edx, dword [esp + 0x120]
pop ecx
pop ecx
lea ecx, [ebx + eax]
add ecx, dword [esp + 0x18]
lea edi, [edx - 1]
cmp ecx, 3
je 0x631831
mov edi, dword [esp + ecx*4 + 0x118]
xor eax, eax
test edi, edi
sete al
add edi, eax
cmp ecx, 1
je 0x63184d
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x120], eax
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xec]
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov bl, byte [esp + 0x3b]
mov dword [esp + 0x118], edi
mov dword [esp + 0x70], edi
test bl, bl
je 0x6318ae
mov ecx, esi
movzx edx, bl
and ecx, 0x1f
add esi, edx
shl eax, cl
mov ecx, edx
neg ecx
mov dword [esp + 0x14], esi
and ecx, 0x1f
mov dword [esp + 0xf0], esi
shr eax, cl
mov ecx, dword [esp + 0x58]
add ecx, eax
mov dword [esp + 0x6c], ecx
movzx eax, byte [esp + 0x2b]
movzx ecx, bl
add ecx, eax
cmp ecx, 0x14
mov ecx, dword [esp + 0x14]
jb 0x631961
cmp ecx, 0x20
ja 0x631961
cmp ebp, dword [esp + 0xfc]
jb 0x631904
lea eax, [esp + 0xec]
push eax
call fcn.0062cc78
mov eax, dword [esp + 0xf0]
mov ebp, dword [esp + 0xf8]
pop ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
jmp 0x631965
mov ebx, dword [esp + 0xf8]
cmp ebp, ebx
je 0x63195b
mov edx, ecx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x631920
mov edx, ebp
sub edx, ebx
imul eax, edx, 0xfffffff8
sub ebp, edx
push ebp
mov dword [esp + 0xf8], ebp
add ecx, eax
mov dword [esp + 0xf4], ecx
call fcn.006294ce
mov ebp, dword [esp + 0xf8]
pop ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x10], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x14], ecx
jmp 0x631965
mov eax, dword [esp + 0x10]
jmp 0x63196c
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xf8]
mov dl, byte [esp + 0x2b]
test dl, dl
je 0x631995
and ecx, 0x1f
movzx edx, dl
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, edx
mov edx, dword [esp + 0x60]
add edx, eax
mov dword [esp + 0x68], edx
cmp ecx, 0x20
ja 0x631a37
cmp ebp, dword [esp + 0xfc]
jb 0x6319f4
mov eax, ecx
and ecx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ecx
push 4
lea eax, [esp + 0xc0]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov edi, dword [esp + 0xc8]
mov ebp, dword [esp + 0x100]
add esp, 0xc
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x10], edi
mov dword [esp + 0xec], edi
jmp 0x631a3b
cmp ebp, ebx
je 0x631a37
mov edx, ecx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x631a09
mov edx, ebp
sub edx, ebx
imul eax, edx, 0xfffffff8
sub ebp, edx
push 4
push ebp
mov dword [esp + 0xfc], ebp
add ecx, eax
lea eax, [esp + 0xc0]
push eax
mov dword [esp + 0xfc], ecx
call fcn.0064a810
mov edi, dword [esp + 0xc4]
jmp 0x6319d6
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov edx, edi
lea esi, [eax + ecx]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x7f8670]
mov eax, dword [esp + 0x78]
movzx eax, ax
add edx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x100], edx
mov edx, edi
lea ecx, [esi + eax]
neg ecx
lea ebx, [eax + esi]
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x7f8670]
mov eax, dword [esp + 0x80]
movzx eax, ax
add edx, eax
mov dword [esp + 0x110], edx
cmp ebx, 0x20
ja 0x631b3a
cmp ebp, dword [esp + 0xfc]
jb 0x631ad4
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ebx
push 4
lea eax, [esp + 0x90]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov edi, dword [esp + 0x98]
jmp 0x631b1e
mov esi, dword [esp + 0xf8]
cmp ebp, esi
je 0x631b3a
mov ecx, ebx
mov eax, ebp
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x631af0
mov ecx, ebp
sub ecx, esi
mov eax, ecx
sub ebp, ecx
shl eax, 3
sub ebx, eax
mov dword [esp + 0xf4], ebp
push 4
lea eax, [esp + 0x94]
mov dword [esp + 0xf4], ebx
push ebp
push eax
call fcn.0064a810
mov edi, dword [esp + 0x9c]
mov ebx, dword [esp + 0xfc]
add esp, 0xc
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0xec], edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x84]
lea esi, [esp + 0x68]
add ebx, eax
mov edx, edi
mov ecx, ebx
mov dword [esp + 0xf0], ebx
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x7f8670]
mov ecx, dword [esp + 0x64]
mov edi, ecx
mov eax, dword [esp + 0x74]
movzx eax, ax
add edx, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x40]
inc edx
add ecx, 0xc
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x64], ecx
movsd dword es:[edi], dword [esi]
jmp 0x631465
cmp ebx, 0x20
jbe 0x631b97
push 3
pop edi
jmp 0x631c45
cmp ebp, dword [esp + 0xfc]
jb 0x631bd3
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ebx
push 4
lea eax, [esp + 0x78]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov eax, dword [esp + 0x80]
add esp, 0xc
xor edi, edi
jmp 0x631c24
cmp ebp, ecx
jne 0x631be1
cmp ebx, 0x20
sbb edi, edi
add edi, 2
jmp 0x631c45
mov edx, ebx
mov eax, ebp
shr edx, 3
xor edi, edi
sub eax, edx
cmp eax, ecx
jae 0x631bf5
mov edx, ebp
sub edx, ecx
inc edi
imul eax, edx, 0xfffffff8
sub ebp, edx
push 4
push ebp
mov dword [esp + 0xfc], ebp
add ebx, eax
lea eax, [esp + 0x8c]
push eax
mov dword [esp + 0xfc], ebx
call fcn.0064a810
mov eax, dword [esp + 0x90]
add esp, 0xc
mov esi, dword [esp + 0xf0]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x14], esi
mov dword [esp + 0xec], eax
mov dword [esp + 0x10], eax
cmp edx, dword [esp + 0x1a0]
jge 0x632adb
cmp edi, 2
ja 0x6313e9
mov ecx, dword [esp + 0x114]
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x100]
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x10c]
mov ebx, dword [ecx + esi*8 + 4]
mov esi, ebx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x6c], esi
mov esi, dword [ebx + edi*8 + 4]
mov cl, byte [ebx + edi*8 + 2]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], esi
mov esi, dword [eax + edx*8 + 4]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x110]
mov byte [esp + 0x3a], cl
mov ecx, dword [esp + 0x114]
mov bl, byte [ecx + esi*8 + 2]
mov byte [esp + 0x2b], bl
mov bl, byte [eax + edx*8 + 2]
mov byte [esp + 0x3b], bl
mov ebx, dword [esp + 0x104]
movzx esi, word [ebx + edi*8]
mov dword [esp + 0xa4], esi
mov esi, dword [esp + 0x110]
movzx ebx, word [ecx + esi*8]
movzx ecx, byte [ecx + esi*8 + 3]
mov dword [esp + 0xac], ebx
movzx ebx, word [eax + edx*8]
movzx eax, byte [eax + edx*8 + 3]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x54], eax
mov al, byte [esp + 0x3b]
mov dword [esp + 0xa8], ecx
movzx edi, byte [ebx + edi*8 + 3]
mov dword [esp + 0xa0], edi
cmp al, 1
jbe 0x631f1b
cmp dword [esp + 0x1a4], 0
je 0x631e33
cmp al, 0x19
jb 0x631e33
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x10]
and ecx, 0x1f
movzx eax, al
mov edi, edx
shl edi, cl
sub eax, 5
mov ecx, eax
add ebx, eax
neg ecx
and ecx, 0x1f
shr edi, cl
shl edi, 5
add edi, dword [esp + 0x18]
cmp ebx, 0x20
ja 0x631e15
cmp ebp, dword [esp + 0xfc]
jb 0x631daf
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ebx
push 4
lea eax, [esp + 0x84]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov edx, dword [esp + 0x8c]
jmp 0x631df9
mov esi, dword [esp + 0xf8]
cmp ebp, esi
je 0x631e15
mov ecx, ebx
mov eax, ebp
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x631dcb
mov ecx, ebp
sub ecx, esi
mov eax, ecx
sub ebp, ecx
shl eax, 3
sub ebx, eax
mov dword [esp + 0xf4], ebp
push 4
lea eax, [esp + 0x80]
mov dword [esp + 0xf4], ebx
push ebp
push eax
call fcn.0064a810
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0xfc]
add esp, 0xc
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0xec], edx
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x10]
mov ecx, ebx
and ecx, 0x1f
mov eax, edx
shl eax, cl
add ebx, 5
shr eax, 0x1b
mov dword [esp + 0x14], ebx
add edi, eax
jmp 0x631f15
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov esi, dword [esp + 0x10]
and ecx, 0x1f
movzx edx, al
mov edi, esi
shl edi, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0x14], ebx
neg ecx
and ecx, 0x1f
shr edi, cl
add edi, dword [esp + 0x18]
cmp ebx, 0x20
ja 0x631f15
cmp ebp, dword [esp + 0xfc]
jb 0x631eaf
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ebx
push 4
lea eax, [esp + 0x68]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x20], esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xf8], ecx
jmp 0x631f0b
mov ecx, dword [esp + 0xf8]
cmp ebp, ecx
je 0x631f15
mov edx, ebx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ecx
jae 0x631ecb
mov edx, ebp
sub edx, ecx
mov eax, edx
sub ebp, edx
shl eax, 3
sub ebx, eax
mov dword [esp + 0xf4], ebp
push 4
lea eax, [esp + 0x64]
mov dword [esp + 0xf4], ebx
push ebp
push eax
call fcn.0064a810
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x20], esi
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xf8], eax
mov ebp, dword [esp + 0x100]
add esp, 0xc
mov ebx, dword [esp + 0x14]
jmp 0x631f8e
mov ecx, dword [esp + 0x5c]
xor edx, edx
mov ebx, dword [esp + 0x14]
test ecx, ecx
mov esi, dword [esp + 0x10]
sete dl
test al, al
jne 0x631f4b
mov edi, dword [esp + edx*4 + 0x118]
mov eax, ecx
neg eax
sbb eax, eax
and eax, 4
mov eax, dword [esp + eax + 0x118]
jmp 0x631fa3
mov ecx, ebx
mov eax, esi
and ecx, 0x1f
shl eax, cl
shr eax, 0x1f
inc ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xf0], ebx
lea ecx, [eax + edx]
add ecx, dword [esp + 0x18]
cmp ecx, 3
jne 0x631f79
mov edi, dword [esp + 0x118]
dec edi
jmp 0x631f80
mov edi, dword [esp + ecx*4 + 0x118]
xor eax, eax
test edi, edi
sete al
add edi, eax
cmp ecx, 1
je 0x631f9c
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x11c], eax
mov al, byte [esp + 0x2b]
mov dword [esp + 0x118], edi
mov dword [esp + 0x70], edi
test al, al
je 0x631fe6
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0x14], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x58]
add ecx, eax
mov al, byte [esp + 0x2b]
mov dword [esp + 0x6c], ecx
movzx ecx, al
movzx eax, byte [esp + 0x3a]
add ecx, eax
cmp ecx, 0x14
mov ecx, dword [esp + 0x14]
jb 0x6320ad
cmp ecx, 0x20
ja 0x6320ad
cmp ebp, dword [esp + 0xfc]
jb 0x63205d
mov eax, ecx
and ecx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ecx
push 4
lea eax, [esp + 0x7c]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xfc]
add esp, 0xc
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x10], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x14], ecx
jmp 0x6320b1
mov ebx, dword [esp + 0xf8]
cmp ebp, ebx
je 0x6320a7
mov edx, ecx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x632079
mov edx, ebp
sub edx, ebx
imul eax, edx, 0xfffffff8
sub ebp, edx
push 4
push ebp
mov dword [esp + 0xfc], ebp
add ecx, eax
lea eax, [esp + 0x9c]
push eax
mov dword [esp + 0xfc], ecx
call fcn.0064a810
mov eax, dword [esp + 0xa0]
jmp 0x63203b
mov eax, dword [esp + 0x10]
jmp 0x6320b8
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xf8]
mov dl, byte [esp + 0x3a]
test dl, dl
je 0x6320e1
and ecx, 0x1f
movzx edx, dl
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, edx
mov edx, dword [esp + 0x5c]
add edx, eax
mov dword [esp + 0x68], edx
cmp ecx, 0x20
ja 0x63217f
cmp ebp, dword [esp + 0xfc]
jb 0x63213c
mov eax, ecx
and ecx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], ecx
push 4
lea eax, [esp + 0x9c]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x100]
add esp, 0xc
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xec], ebx
jmp 0x632183
cmp ebp, ebx
je 0x63217f
mov edx, ecx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x632151
mov edx, ebp
sub edx, ebx
imul eax, edx, 0xfffffff8
sub ebp, edx
push 4
push ebp
mov dword [esp + 0xfc], ebp
add ecx, eax
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0xfc], ecx
call fcn.0064a810
mov ebx, dword [esp + 0xa8]
jmp 0x632122
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xa0]
mov edx, ebx
lea esi, [eax + ecx]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x7f8670]
mov eax, dword [esp + 0xa4]
movzx eax, ax
add edx, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x100], edx
mov edx, ebx
lea ecx, [eax + esi]
neg ecx
lea edi, [eax + esi]
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x7f8670]
mov eax, dword [esp + 0xac]
movzx eax, ax
add edx, eax
mov dword [esp + 0x110], edx
cmp edi, 0x20
ja 0x632280
cmp ebp, dword [esp + 0xfc]
jb 0x632225
mov eax, edi
and edi, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0xf0], edi
push 4
lea eax, [esp + 0xb4]
mov dword [esp + 0xf8], ebp
push ebp
push eax
call fcn.0064a810
mov ebx, dword [esp + 0xbc]
jmp 0x63226f
mov ecx, dword [esp + 0xf8]
cmp ebp, ecx
je 0x632280
mov edx, edi
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ecx
jae 0x632241
mov edx, ebp
sub edx, ecx
mov eax, edx
sub ebp, edx
shl eax, 3
sub edi, eax
mov dword [esp + 0xf4], ebp
push 4
lea eax, [esp + 0xb8]
mov dword [esp + 0xf4], edi
push ebp
push eax
call fcn.0064a810
mov ebx, dword [esp + 0xc0]
mov edi, dword [esp + 0xfc]
add esp, 0xc
mov dword [esp + 0xec], ebx
mov eax, dword [esp + 0x54]
add edi, eax
mov edx, dword [esp + 0x50]
mov dword [esp + 0xf0], edi
neg edi
and edi, 0x1f
mov ecx, edi
mov ebp, dword [edx + 0x7608]
shr ebx, cl
and ebx, dword [eax*4 + 0x7f8670]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
movzx eax, ax
add ebx, eax
mov dword [esp + 0x108], ebx
cmp ebp, 2
jne 0x63257f
mov eax, dword [esp + 0x40]
lea ebx, [esp + 0x124]
mov esi, dword [edx + 0x7604]
and eax, 7
imul eax, eax, 0xc
add ebx, eax
mov dword [esp + 0x1c], ebx
mov edi, dword [ebx]
lea eax, [ecx + edi]
cmp eax, esi
jbe 0x63257f
mov ebp, dword [esp + 0x20]
sub esi, ecx
je 0x63231d
mov eax, dword [esp + 0x30]
sub eax, ebp
cmp esi, eax
ja 0x632ad4
push esi
push ecx
push ebp
call fcn.00636215
mov edx, dword [esp + 0x5c]
sub edi, esi
add esp, 0xc
mov dword [ebx], edi
add ebp, esi
mov dword [esp + 0x20], ebp
and dword [edx + 0x7608], 0
lea edi, [esp + 0xc8]
mov esi, ebx
lea eax, [edx + 0x1760c]
mov dword [esp + 0x3c], eax
lea ecx, [edx + 0x760c]
mov dword [esp + 0x34], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x18], edx
add eax, ecx
mov edi, edx
sub edi, dword [esp + 0xd0]
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x3c]
ja 0x632576
mov eax, dword [esp + 0x30]
lea ecx, [ebx + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x632576
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x632576
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0xc8]
movups xmm0, xmmword [ecx + 0x760c]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x6323fe
add eax, 0xfffffff0
lea esi, [ecx + 0x761c]
lea ecx, [ebp + 0x10]
movups xmm0, xmmword [esi]
lea ebp, [ecx + eax]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x6323f7
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add esi, 0x10
movups xmm0, xmmword [esi]
lea esi, [esi + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x6323df
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x34], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x632475
mov eax, edx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x6313e9
mov ecx, dword [esp + 0x48]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
jbe 0x63290b
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.0064a810
mov edx, dword [esp + 0x24]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xcc], esi
mov esi, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], edx
mov dword [esp + 0xcc], esi
cmp ecx, 0x10
jb 0x6324af
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x632a7b
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x632492
jmp 0x632a7b
cmp ecx, 8
jae 0x6324f2
mov al, byte [edi]
mov esi, dword [ecx*4 + 0x7f8550]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x7f8530]
push 4
mov byte [edx + 3], al
lea eax, [edx + 4]
push edi
push eax
call fcn.0064a810
add esp, 0xc
sub edi, esi
mov esi, dword [esp + 0xcc]
jmp 0x6324fb
push edi
push edx
call fcn.00630b00
pop ecx
pop ecx
cmp esi, 8
jbe 0x632a7b
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x18]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x1c], edx
cmp eax, 0x10
jge 0x632541
sub edi, esi
mov ebp, edx
lea eax, [esi + edi]
push eax
push esi
call fcn.00630b00
add esi, 8
pop ecx
pop ecx
cmp esi, ebp
jb 0x632525
mov ebp, dword [esp + 0x20]
jmp 0x632a7b
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x632a7b
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x632559
jmp 0x632a7b
mov esi, dword [esp + 0x1c]
jmp 0x632a47
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x124]
and eax, 7
imul eax, eax, 0xc
add edx, eax
cmp ebp, 2
mov ebp, dword [esp + 0x20]
mov esi, edx
mov dword [esp + 0x58], edx
jne 0x632810
mov eax, dword [edx]
lea edi, [esp + 0xd4]
movsd dword es:[edi], dword [esi]
add eax, 0xffffffe0
add eax, ecx
mov dword [esp + 0x5c], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0xd8]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x18], edx
add eax, ecx
mov edi, edx
sub edi, dword [esp + 0xdc]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x3c]
ja 0x6327d9
lea eax, [ebx + ebp]
cmp eax, dword [esp + 0x5c]
ja 0x6327d9
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x6327d9
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xd4]
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x632668
add eax, 0xfffffff0
lea esi, [ecx + 0x10]
lea ecx, [ebp + 0x10]
movups xmm0, xmmword [esi]
lea ebp, [ecx + eax]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x632661
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add esi, 0x10
movups xmm0, xmmword [esi]
lea esi, [esi + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x632649
mov esi, dword [esp + 0xd8]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x6326e3
mov eax, edx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x6313e9
mov ecx, dword [esp + 0x48]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
jbe 0x63290b
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.0064a810
mov edx, dword [esp + 0x24]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xd8], esi
mov esi, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov dword [esp + 0xd8], esi
cmp ecx, 0x10
jb 0x63271d
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x632a7b
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x632700
jmp 0x632a7b
cmp ecx, 8
jae 0x63274f
mov al, byte [edi]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x7f8530]
mov byte [edx + 3], al
mov eax, edi
sub edi, dword [ecx*4 + 0x7f8550]
add edx, 4
push 4
jmp 0x632753
mov eax, edi
push 8
pop ecx
push ecx
push eax
push edx
call fcn.0064a810
add esp, 0xc
cmp esi, 8
jbe 0x632a7b
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x18]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x1c], edx
cmp eax, 0x10
jge 0x6327a4
sub edi, esi
mov ebp, edx
push 8
lea eax, [edi + esi]
push eax
push esi
call fcn.0064a810
add esi, 8
add esp, 0xc
cmp esi, ebp
jb 0x632789
jmp 0x632538
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x632a7b
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x6327bc
jmp 0x632a7b
push dword [esp + 0x48]
mov esi, dword [esp + 0x5c]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x2c]
push dword [esp + 0x48]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x7c]
movsd dword es:[edi], dword [esi]
push dword [esp + 0x54]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00635e3b
add esp, 0x2c
jmp 0x632a71
lea edi, [esp + 0xe0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x18], edx
add eax, ecx
mov edi, edx
sub edi, dword [esp + 0xe8]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x3c]
ja 0x632a43
mov eax, dword [esp + 0x30]
lea ecx, [ebx + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x632a43
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x632a43
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xe0]
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x6328cd
add eax, 0xfffffff0
lea esi, [ecx + 0x10]
lea ecx, [ebp + 0x10]
movups xmm0, xmmword [esi]
lea ebp, [ecx + eax]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x6328c6
mov eax, dword [esp + 0x1c]
add ecx, 0x10
add esi, 0x10
movups xmm0, xmmword [esi]
lea esi, [esi + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x6328ae
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x632954
mov eax, edx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x6313e9
mov ecx, dword [esp + 0x48]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
ja 0x63291b
push esi
push edi
push edx
call fcn.0064a810
add esp, 0xc
jmp 0x632a7b
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.0064a810
mov edx, dword [esp + 0x24]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xe4], esi
mov esi, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x18], edx
mov dword [esp + 0xe4], esi
cmp ecx, 0x10
jb 0x63298e
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x632a7b
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x632971
jmp 0x632a7b
cmp ecx, 8
jae 0x6329c0
mov al, byte [edi]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x7f8530]
mov byte [edx + 3], al
mov eax, edi
sub edi, dword [ecx*4 + 0x7f8550]
add edx, 4
push 4
jmp 0x6329c4
mov eax, edi
push 8
pop ecx
push ecx
push eax
push edx
call fcn.0064a810
add esp, 0xc
cmp esi, 8
jbe 0x632a7b
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x18]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x1c], edx
cmp eax, 0x10
jge 0x632a15
sub edi, esi
mov ebp, edx
push 8
lea eax, [edi + esi]
push eax
push esi
call fcn.0064a810
add esi, 8
add esp, 0xc
cmp esi, ebp
jb 0x6329fa
jmp 0x632538
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x632a7b
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x632a29
jmp 0x632a7b
mov esi, dword [esp + 0x58]
push dword [esp + 0x48]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x2c]
push dword [esp + 0x48]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x50]
movsd dword es:[edi], dword [esi]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00635d56
add esp, 0x28
mov ebx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
cmp ebx, 0xffffff88
ja 0x63332d
mov edx, dword [esp + 0x40]
lea edi, [esp + 0x124]
mov ecx, dword [esp + 0xf8]
lea esi, [esp + 0x68]
mov eax, edx
add ebp, ebx
mov ebx, dword [esp + 0xf0]
and eax, 7
imul eax, eax, 0xc
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x14], ebx
add edi, eax
mov eax, dword [esp + 0xec]
inc edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x631b8a
push 0xffffffffffffffba
jmp 0x6313eb
sub edx, dword [esp + 0x44]
jmp 0x63329a
mov ebp, dword [esp + 0x20]
lea ebx, [esp + 0x124]
and edx, 7
imul eax, edx, 0xc
mov edx, dword [esp + 0x50]
add ebx, eax
cmp dword [edx + 0x7608], 2
mov dword [esp + 0x14], ebx
jne 0x633011
mov edi, dword [ebx]
mov ecx, dword [esp + 0x2c]
mov esi, dword [edx + 0x7604]
lea eax, [edi + ecx]
cmp eax, esi
jbe 0x632da2
sub esi, ecx
je 0x632b4a
mov eax, dword [esp + 0x30]
sub eax, ebp
cmp esi, eax
ja 0x632ad4
push esi
push ecx
push ebp
call fcn.00636215
mov edx, dword [esp + 0x5c]
sub edi, esi
add esp, 0xc
mov dword [ebx], edi
add ebp, esi
mov dword [esp + 0x20], ebp
and dword [edx + 0x7608], 0
lea edi, [esp + 0xe0]
mov esi, ebx
lea eax, [edx + 0x1760c]
mov dword [esp + 0x3c], eax
lea ecx, [edx + 0x760c]
mov dword [esp + 0x34], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x18], edx
add eax, ecx
mov edi, edx
sub edi, dword [esp + 0xe8]
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x3c]
ja 0x63324e
mov eax, dword [esp + 0x30]
lea ecx, [ebx + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x63324e
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x63324e
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0xe0]
movups xmm0, xmmword [ecx + 0x760c]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x632c31
add ecx, 0x761c
add eax, 0xfffffff0
mov dword [esp + 0x44], ecx
lea ecx, [ebp + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x44]
movups xmm0, xmmword [esi]
mov esi, dword [esp + 0xe4]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x632c31
mov eax, dword [esp + 0x44]
add ecx, 0x10
add eax, 0x10
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, dword [esp + 0x1c]
jb 0x632c17
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x34], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x632ca8
mov eax, edx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x6313e9
mov ecx, dword [esp + 0x48]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
jbe 0x633116
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.0064a810
mov edx, dword [esp + 0x24]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xe4], esi
mov esi, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x18], edx
mov dword [esp + 0xe4], esi
cmp ecx, 0x10
jb 0x632ce2
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x633286
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x632cc5
jmp 0x633286
cmp ecx, 8
jae 0x632d14
mov al, byte [edi]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x7f8530]
mov byte [edx + 3], al
mov eax, edi
sub edi, dword [ecx*4 + 0x7f8550]
add edx, 4
push 4
jmp 0x632d18
mov eax, edi
push 8
pop ecx
push ecx
push eax
push edx
call fcn.0064a810
add esp, 0xc
cmp esi, 8
jbe 0x633286
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x18]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x1c], edx
cmp eax, 0x10
jge 0x632d6d
sub edi, esi
mov ebp, edx
push 8
lea eax, [esi + edi]
push eax
push esi
call fcn.0064a810
add esi, 8
add esp, 0xc
cmp esi, ebp
jb 0x632d4e
mov ebp, dword [esp + 0x20]
jmp 0x633286
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x633286
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x632d85
jmp 0x633286
mov esi, ebx
lea edi, [esp + 0xd4]
add eax, 0xffffffe0
mov dword [esp + 0x44], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0xd8]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x18], edx
add eax, ecx
mov edi, edx
sub edi, dword [esp + 0xdc]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x3c]
ja 0x632fda
lea eax, [ebx + ebp]
cmp eax, dword [esp + 0x44]
ja 0x632fda
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x632fda
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xd4]
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x632e69
add ecx, 0x10
add eax, 0xfffffff0
mov dword [esp + 0x44], ecx
lea ecx, [ebp + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x44]
movups xmm0, xmmword [esi]
mov esi, dword [esp + 0xd8]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x632e69
mov eax, dword [esp + 0x44]
add ecx, 0x10
add eax, 0x10
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, dword [esp + 0x1c]
jb 0x632e4f
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x632ee4
mov eax, edx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x6313e9
mov ecx, dword [esp + 0x48]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
jbe 0x633116
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.0064a810
mov edx, dword [esp + 0x24]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xd8], esi
mov esi, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x18], edx
mov dword [esp + 0xd8], esi
cmp ecx, 0x10
jb 0x632f1e
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x633286
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x632f01
jmp 0x633286
cmp ecx, 8
jae 0x632f50
mov al, byte [edi]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x7f8530]
mov byte [edx + 3], al
mov eax, edi
sub edi, dword [ecx*4 + 0x7f8550]
add edx, 4
push 4
jmp 0x632f54
mov eax, edi
push 8
pop ecx
push ecx
push eax
push edx
call fcn.0064a810
add esp, 0xc
cmp esi, 8
jbe 0x633286
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x18]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x1c], edx
cmp eax, 0x10
jge 0x632fa5
sub edi, esi
mov ebp, edx
push 8
lea eax, [edi + esi]
push eax
push esi
call fcn.0064a810
add esi, 8
add esp, 0xc
cmp esi, ebp
jb 0x632f8a
jmp 0x632d64
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x633286
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x632fbd
jmp 0x633286
push dword [esp + 0x48]
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x2c]
push dword [esp + 0x48]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x64]
movsd dword es:[edi], dword [esi]
push dword [esp + 0x54]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00635e3b
add esp, 0x2c
jmp 0x63327c
mov esi, ebx
lea edi, [esp + 0xc8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x18], edx
add eax, dword [esp + 0x2c]
mov edi, edx
sub edi, dword [esp + 0xd0]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x3c]
ja 0x63324e
mov eax, dword [esp + 0x30]
lea ecx, [ebx + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x63324e
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x63324e
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc8]
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x6330d8
add ecx, 0x10
add eax, 0xfffffff0
mov dword [esp + 0x44], ecx
lea ecx, [ebp + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x44]
movups xmm0, xmmword [esi]
mov esi, dword [esp + 0xcc]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x6330d8
mov eax, dword [esp + 0x44]
add ecx, 0x10
add eax, 0x10
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, dword [esp + 0x1c]
jb 0x6330be
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x63315f
mov eax, edx
sub eax, dword [esp + 0x4c]
cmp ecx, eax
ja 0x6313e9
mov ecx, dword [esp + 0x48]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
ja 0x633126
push esi
push edi
push edx
call fcn.0064a810
add esp, 0xc
jmp 0x633286
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.0064a810
mov edx, dword [esp + 0x24]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xcc], esi
mov esi, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], edx
mov dword [esp + 0xcc], esi
cmp ecx, 0x10
jb 0x633199
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x633286
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x63317c
jmp 0x633286
cmp ecx, 8
jae 0x6331cb
mov al, byte [edi]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x7f8530]
mov byte [edx + 3], al
mov eax, edi
sub edi, dword [ecx*4 + 0x7f8550]
add edx, 4
push 4
jmp 0x6331cf
mov eax, edi
push 8
pop ecx
push ecx
push eax
push edx
call fcn.0064a810
add esp, 0xc
cmp esi, 8
jbe 0x633286
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x18]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x1c], edx
cmp eax, 0x10
jge 0x633220
sub edi, esi
mov ebp, edx
push 8
lea eax, [edi + esi]
push eax
push esi
call fcn.0064a810
add esi, 8
add esp, 0xc
cmp esi, ebp
jb 0x633205
jmp 0x632d64
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x633286
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x633234
jmp 0x633286
push dword [esp + 0x48]
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x2c]
push dword [esp + 0x48]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x50]
movsd dword es:[edi], dword [esi]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00635d56
add esp, 0x28
mov ebx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
cmp ebx, 0xffffff88
ja 0x63332d
mov edx, dword [esp + 0x40]
add ebp, ebx
mov dword [esp + 0x20], ebp
inc edx
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0x1a0]
jl 0x632ae4
mov edi, dword [esp + 0x50]
lea esi, [esp + 0x118]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x3c]
lea edi, [edi + 0x682c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
cmp dword [esi + 0x7608], 2
jne 0x633305
mov eax, dword [esp + 0x30]
sub ebp, ecx
sub eax, ebx
cmp ebp, eax
ja 0x632ad4
test ebx, ebx
je 0x6332f9
push ebp
push ecx
push ebx
call fcn.0064a810
add esp, 0xc
add ebx, ebp
lea ecx, [esi + 0x760c]
lea ebp, [esi + 0x1760c]
mov eax, dword [esp + 0x30]
sub ebp, ecx
sub eax, ebx
cmp ebp, eax
ja 0x632ad4
test ebx, ebx
je 0x633326
push ebp
push ecx
push ebx
call fcn.0064a810
add esp, 0xc
add ebx, ebp
sub ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x184]
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00649c68
add esp, 0x178
ret