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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x5d8
mov esi, esp
mov dword [esi + 0x5c0], ebp
mov dword [esi + 0x5c4], esp
mov dword [esi + 0x5d0], 0xffffffff
mov dword [esi + 0x5cc], 0x49abf0
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x18]
mov ecx, dword fs:[0]
cmp eax, edi
mov dword [esi + 0x5c8], ecx
lea ecx, [esi + 0x5c8]
mov dword fs:[0], ecx
mov ecx, edi
cmovb edi, eax
cmova ecx, eax
mov dword [esi + 0xcc], ecx
mov ecx, edx
cmovb ecx, ebx
cmovb ebx, edx
cmp edi, 0x21
mov dword [esi + 0x14], ecx
mov ecx, dword [ebp + 8]
mov dword [esi + 0x10], ecx
jae 0x495202
test edi, edi
je 0x499248
lea eax, [ebx + edi*8]
mov dword [esi + 0x194], eax
mov eax, dword [esi + 0xcc]
lea eax, [eax*8]
mov dword [esi + 0x184], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax*8]
mov dword [esi + 0x180], eax
xor eax, eax
jmp 0x495077
mov ebx, dword [esi + 0xfc]
mov eax, dword [esi + 0x138]
add dword [esi + 0x10], 8
add dword [esi + 0x180], 0xfffffff8
add ebx, 8
inc eax
cmp ebx, dword [esi + 0x194]
je 0x499248
cmp eax, dword [ebp + 0xc]
mov dword [esi + 0x138], eax
ja 0x499619
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esi + 0xfc], ebx
mov edx, eax
or eax, ecx
je 0x495050
mov eax, dword [ebp + 0xc]
mov edi, ecx
mov ecx, dword [esi + 0xcc]
sub eax, dword [esi + 0x138]
cmp eax, ecx
jb 0x49963b
test ecx, ecx
je 0x495050
xor ebx, ebx
xor ecx, ecx
xor eax, eax
mov dword [esi + 8], 0
mov dword [esi + 0x17c], edx
mov dword [esi + 0x188], edi
nop dword [eax]
mov edi, dword [esi + 0x10]
mov edx, eax
mov dword [esi], eax
add ebx, dword [edi + eax*8]
adc ecx, dword [edi + eax*8 + 4]
mov eax, dword [esi + 8]
mov edi, eax
adc edi, 0
adc eax, 0
mov dword [esi + 0x20], edi
mov edi, dword [esi + 0x17c]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax + edx*8]
mov dword [esi + 4], eax
mul edi
mov dword [esi + 0x64], eax
mov dword [esi + 0xac], edx
mov eax, dword [esi]
mov edx, dword [esi + 0x14]
mov eax, dword [edx + eax*8 + 4]
mov dword [esi + 0xb0], eax
mul edi
mov edi, dword [esi + 0x188]
add eax, dword [esi + 0xac]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 4]
adc edx, 0
mov dword [esi + 0xac], edx
mul edi
add eax, dword [esi + 0xd0]
adc edx, dword [esi + 0xac]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xb0]
mov dword [esi + 0xd0], edx
setb byte [esi + 0xac]
mul edi
add eax, dword [esi + 0xd0]
movzx edi, byte [esi + 0xac]
adc edx, edi
mov edi, dword [esi + 0x64]
add edi, ebx
mov ebx, eax
mov eax, dword [esi + 0x10]
adc dword [esi + 4], ecx
mov ecx, edx
mov edx, dword [esi]
mov dword [eax + edx*8], edi
mov edi, dword [esi + 4]
adc ebx, dword [esi + 0x20]
mov dword [eax + edx*8 + 4], edi
lea eax, [edx + 1]
adc ecx, dword [esi + 0x24]
cmp dword [esi + 0xcc], eax
jne 0x4950d0
cmp ebx, 1
mov eax, ecx
sbb eax, 0
jb 0x495050
mov eax, dword [esi + 0x184]
mov edx, dword [esi + 8]
nop word cs:[eax + eax]
nop
cmp dword [esi + 0x180], eax
je 0x4995f9
mov edi, dword [esi + 0x10]
add dword [edi + eax], ebx
adc dword [edi + eax + 4], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 8], 0
adc ecx, 0
adc edx, 0
add eax, 8
mov ebx, ecx
neg ecx
mov ecx, 0
sbb ecx, edx
mov ecx, edx
mov edx, 0
jb 0x4951c0
jmp 0x495050
cmp edi, 0x101
mov dword [esi + 0xfc], ebx
mov dword [esi + 0xd0], edi
jae 0x495277
mov eax, dword [esi + 0xcc]
mov ecx, edi
shr ecx, 1
sub eax, ecx
jb 0x49965b
mov edx, edi
mov dword [esi + 0xcc], eax
mov dword [esi + 0xb0], ecx
sub edx, ecx
mov dword [esi + 0x188], edx
lea edx, [eax + edx + 1]
cmp edx, 5
mov dword [esi + 0x17c], edx
jae 0x495cab
test edx, edx
je 0x49605f
lea eax, [edx*8]
lea ecx, [esi + 0x28]
push eax
push 0
push ecx
call fcn.00588b30
add esp, 0xc
mov eax, dword [esi + 0x28]
jmp 0x49605f
mov eax, dword [esi + 0xcc]
mov edx, 0xaaaaaaab
mov dword [esi + 0x50], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x5d0], 0
mul edx
shr edx, 1
lea eax, [edx + 1]
mov dword [esi + 0x64], edx
mov edx, edi
cmp edi, eax
mov edi, eax
mov ecx, edx
mov dword [esi + 0x190], eax
cmovb edi, edx
sub ecx, edi
mov edx, edi
cmp ecx, eax
mov dword [esi + 4], edx
cmovae ecx, eax
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0xcc]
sub ecx, eax
cmp ecx, eax
cmovae ecx, eax
lea eax, [esi + 0x28]
mov dword [esi + 0xb0], ecx
lea ecx, [ebx + edx*8]
mov dword [esi + 0x20], ecx
push ecx
push ebx
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
lea ebx, [esi + 0x70]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x68], xmm2
mov eax, dword [esi + 0x68]
movsd qword [esi + 0x70], xmm1
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x24], eax
mov dword [esi], ecx
nop
mov edi, dword [esi + 0x90]
mov edx, ebx
cmp edi, 5
mov ecx, edi
jb 0x495354
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi]
test ecx, ecx
je 0x49537c
mov eax, dword [edx + ecx*8 - 8]
or eax, dword [edx + ecx*8 - 4]
jne 0x49537c
cmp edi, 5
lea ecx, [esi + 0x90]
jb 0x495373
mov edi, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
test edi, edi
je 0x495340
dec edi
mov dword [ecx], edi
jmp 0x495340
mov eax, dword [esi + 0x6c]
cmp edi, 5
mov ecx, edi
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
movq xmm3, qword [ebx + 0x18]
mov edx, dword [esi + 8]
cmovae ecx, eax
movsd qword [esi + 0x278], xmm0
movsd qword [esi + 0x280], xmm1
movsd qword [esi + 0x288], xmm2
movq qword [esi + 0x290], xmm3
cmp ecx, 1
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x270], ecx
mov dword [esi + 0x274], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 4]
mov dword [esi + 0x298], edi
mov dword [esi + 0x29c], eax
mov al, 2
sbb al, 0
add ecx, edx
cmp ecx, dword [esi + 0xd0]
mov byte [esi + 0x2a0], al
mov eax, ecx
mov dword [esi + 4], ecx
ja 0x499662
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x50], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x5d0], 0x27
lea eax, [ecx + edx*8]
push eax
push ecx
lea eax, [esi + 0x28]
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
lea ebx, [esi + 0x70]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x68], xmm2
mov eax, dword [esi + 0x68]
movsd qword [esi + 0x70], xmm1
mov ecx, dword [esi + 0x70]
mov dword [esi + 8], eax
mov dword [esi], ecx
mov edi, dword [esi + 0x90]
mov edx, ebx
cmp edi, 5
mov ecx, edi
jb 0x495494
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi]
test ecx, ecx
je 0x4954bc
mov eax, dword [edx + ecx*8 - 8]
or eax, dword [edx + ecx*8 - 4]
jne 0x4954bc
cmp edi, 5
lea ecx, [esi + 0x90]
jb 0x4954b3
mov edi, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
test edi, edi
je 0x495480
dec edi
mov dword [ecx], edi
jmp 0x495480
mov eax, dword [esi + 0x6c]
cmp edi, 5
mov ecx, edi
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
movq xmm3, qword [ebx + 0x18]
mov edx, dword [esi + 0xd0]
mov dword [esi + 0x50], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x5d0], 0x26
cmovae ecx, eax
movsd qword [esi + 0x360], xmm0
movsd qword [esi + 0x368], xmm1
movsd qword [esi + 0x370], xmm2
movq qword [esi + 0x378], xmm3
cmp ecx, 1
mov ecx, dword [esi + 8]
mov dword [esi + 0x358], ecx
mov dword [esi + 0x35c], eax
mov eax, dword [esi + 0x94]
mov dword [esi + 0x380], edi
mov ecx, dword [esi + 0xfc]
mov dword [esi + 0x384], eax
mov eax, dword [esi + 4]
lea eax, [ecx + eax*8]
lea ecx, [ecx + edx*8]
mov dh, 2
sbb dh, 0
mov byte [esi + 0x388], dh
push ecx
push eax
lea eax, [esi + 0x28]
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
lea ebx, [esi + 0x70]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x68], xmm2
mov eax, dword [esi + 0x68]
movsd qword [esi + 0x70], xmm1
mov ecx, dword [esi + 0x70]
mov dword [esi + 4], eax
mov dword [esi], ecx
nop word [eax + eax]
mov edi, dword [esi + 0x90]
mov edx, ebx
cmp edi, 5
mov ecx, edi
jb 0x4955d4
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi]
test ecx, ecx
je 0x4955fc
mov eax, dword [edx + ecx*8 - 8]
or eax, dword [edx + ecx*8 - 4]
jne 0x4955fc
cmp edi, 5
lea ecx, [esi + 0x90]
jb 0x4955f3
mov edi, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
test edi, edi
je 0x4955c0
dec edi
mov dword [ecx], edi
jmp 0x4955c0
mov eax, dword [esi + 0x6c]
cmp edi, 5
mov ecx, edi
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
movq xmm3, qword [ebx + 0x18]
mov dl, 2
cmovae ecx, eax
movsd qword [esi + 0x240], xmm0
movsd qword [esi + 0x248], xmm1
movsd qword [esi + 0x250], xmm2
movq qword [esi + 0x258], xmm3
cmp ecx, 1
mov ecx, dword [esi + 4]
sbb dl, 0
mov dword [esi + 0x238], ecx
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x23c], eax
mov dword [esi + 0x260], edi
mov edi, dword [esi + 0x94]
cmp ecx, dword [esi + 0xcc]
mov dword [esi + 0x264], edi
mov byte [esi + 0x268], dl
jae 0x4996b3
mov eax, dword [esi + 0x190]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x50], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x5d0], 0x25
lea eax, [ecx + eax*8]
mov dword [esi + 4], eax
push eax
push ecx
lea eax, [esi + 0x28]
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
lea ebx, [esi + 0x70]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x68], xmm2
mov eax, dword [esi + 0x68]
movsd qword [esi + 0x70], xmm1
mov ecx, dword [esi + 0x70]
mov dword [esi + 8], eax
mov dword [esi], ecx
mov edi, dword [esi + 0x90]
mov edx, ebx
cmp edi, 5
mov ecx, edi
jb 0x495714
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi]
test ecx, ecx
je 0x49573c
mov eax, dword [edx + ecx*8 - 8]
or eax, dword [edx + ecx*8 - 4]
jne 0x49573c
cmp edi, 5
lea ecx, [esi + 0x90]
jb 0x495733
mov edi, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
test edi, edi
je 0x495700
dec edi
mov dword [ecx], edi
jmp 0x495700
mov eax, dword [esi + 0x6c]
cmp edi, 5
mov ecx, edi
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
movq xmm3, qword [ebx + 0x18]
cmovae ecx, eax
movsd qword [esi + 0x2b0], xmm0
movsd qword [esi + 0x2b8], xmm1
movsd qword [esi + 0x2c0], xmm2
movq qword [esi + 0x2c8], xmm3
cmp ecx, 1
mov ecx, dword [esi + 8]
mov dword [esi + 0x2a8], ecx
mov dword [esi + 0x2ac], eax
mov eax, dword [esi + 0x94]
mov dword [esi + 0x2d0], edi
mov ecx, dword [esi + 0xb0]
mov dword [esi + 0x2d4], eax
mov al, 2
sbb al, 0
mov byte [esi + 0x2d8], al
mov eax, dword [esi + 0x190]
lea edx, [ecx + eax]
mov eax, ecx
cmp edx, dword [esi + 0xcc]
mov ecx, edx
mov dword [esi + 8], edx
ja 0x499731
mov ecx, dword [esi + 4]
mov dword [esi + 0x50], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x5d0], 0x24
lea eax, [ecx + eax*8]
push eax
push ecx
lea eax, [esi + 0x28]
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
lea ebx, [esi + 0x70]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x68], xmm2
mov eax, dword [esi + 0x68]
movsd qword [esi + 0x70], xmm1
mov ecx, dword [esi + 0x70]
mov dword [esi + 4], eax
mov dword [esi], ecx
nop dword [eax]
mov edi, dword [esi + 0x90]
mov edx, ebx
cmp edi, 5
mov ecx, edi
jb 0x495864
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi]
test ecx, ecx
je 0x49588c
mov eax, dword [edx + ecx*8 - 8]
or eax, dword [edx + ecx*8 - 4]
jne 0x49588c
cmp edi, 5
lea ecx, [esi + 0x90]
jb 0x495883
mov edi, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
test edi, edi
je 0x495850
dec edi
mov dword [ecx], edi
jmp 0x495850
mov eax, dword [esi + 0x6c]
cmp edi, 5
mov ecx, edi
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
movq xmm3, qword [ebx + 0x18]
mov edx, dword [esi + 0x14]
mov dword [esi + 0x50], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x5d0], 0x23
cmovae ecx, eax
movsd qword [esi + 0x398], xmm0
movsd qword [esi + 0x3a0], xmm1
movsd qword [esi + 0x3a8], xmm2
movq qword [esi + 0x3b0], xmm3
cmp ecx, 1
mov ecx, dword [esi + 4]
mov dword [esi + 0x390], ecx
mov dword [esi + 0x394], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0xcc]
mov dword [esi + 0x3b8], edi
mov dword [esi + 0x3bc], eax
mov eax, dword [esi + 8]
lea ecx, [edx + ecx*8]
lea eax, [edx + eax*8]
mov dh, 2
sbb dh, 0
mov byte [esi + 0x3c0], dh
push ecx
push eax
lea eax, [esi + 0x28]
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
lea ebx, [esi + 0x70]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x68], xmm2
mov eax, dword [esi + 0x68]
movsd qword [esi + 0x70], xmm1
mov ecx, dword [esi + 0x70]
mov dword [esi + 4], eax
mov dword [esi], ecx
nop word cs:[eax + eax]
nop
mov edi, dword [esi + 0x90]
mov edx, ebx
cmp edi, 5
mov ecx, edi
jb 0x4959a4
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi]
test ecx, ecx
je 0x4959cc
mov eax, dword [edx + ecx*8 - 8]
or eax, dword [edx + ecx*8 - 4]
jne 0x4959cc
cmp edi, 5
lea ecx, [esi + 0x90]
jb 0x4959c3
mov edi, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
test edi, edi
je 0x495990
dec edi
mov dword [ecx], edi
jmp 0x495990
mov eax, dword [esi + 0x6c]
cmp edi, 5
mov ecx, edi
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
movq xmm3, qword [ebx + 0x18]
mov byte [esi + 0xdb], 1
mov byte [esi + 0xdc], 1
mov byte [esi + 0xdd], 1
mov byte [esi + 0xde], 1
mov byte [esi + 0xdf], 1
mov byte [esi + 0xe0], 1
mov dword [esi + 0x5d0], 6
lea edx, [esi + 0x270]
cmovae ecx, eax
movsd qword [esi + 0x2e8], xmm0
movsd qword [esi + 0x2f0], xmm1
movsd qword [esi + 0x2f8], xmm2
movq qword [esi + 0x300], xmm3
cmp ecx, 1
mov ecx, dword [esi + 4]
mov dword [esi + 0x2e0], ecx
mov dword [esi + 0x2e4], eax
mov eax, dword [esi + 0x94]
mov dword [esi + 0x308], edi
lea ecx, [esi + 0x470]
mov dword [esi + 0x30c], eax
mov al, 2
sbb al, 0
mov byte [esi + 0x310], al
lea eax, [esi + 0x238]
push eax
call fcn.00492b30
add esp, 4
lea eax, [esi + 0x2e0]
mov byte [esi + 0xe1], 1
mov byte [esi + 0xe2], 1
mov byte [esi + 0xe3], 1
mov byte [esi + 0xe4], 1
mov byte [esi + 0xe5], 1
mov byte [esi + 0xe6], 1
mov dword [esi + 0x5d0], 7
lea ecx, [esi + 0x4a8]
lea edx, [esi + 0x2a8]
push eax
call fcn.00492b30
add esp, 4
lea eax, [esi + 0x358]
mov byte [esi + 0xe7], 1
mov byte [esi + 0xe8], 1
mov byte [esi + 0xe9], 1
mov byte [esi + 0xea], 1
mov byte [esi + 0xeb], 1
mov byte [esi + 0xec], 1
mov dword [esi + 0x5d0], 8
lea ecx, [esi + 0x400]
lea edx, [esi + 0x470]
push eax
call fcn.00493910
add esp, 4
lea eax, [esi + 0x390]
mov byte [esi + 0xed], 1
mov byte [esi + 0xee], 1
mov byte [esi + 0xef], 1
mov byte [esi + 0xf0], 1
mov byte [esi + 0xf1], 1
mov byte [esi + 0xf2], 1
mov dword [esi + 0x5d0], 9
lea ecx, [esi + 0x438]
lea edx, [esi + 0x4a8]
push eax
call fcn.00493910
add esp, 4
movzx eax, byte [esi + 0x2a0]
mov cl, 1
lea edx, [esi + 0x28]
lea edi, [esi + 0x278]
lea ebx, [esi + 0x2b0]
mov dword [esi], ecx
cmp al, 1
je 0x495bb2
movzx ecx, byte [esi + 0x2d8]
test ecx, ecx
je 0x4967e9
cmp ecx, 1
je 0x495bb2
test al, al
je 0x4967f1
mov al, 2
mov dword [esi], eax
mov eax, dword [esi + 0x298]
cmp eax, 5
jb 0x495bc9
mov eax, dword [esi + 0x274]
mov edi, dword [esi + 0x278]
mov ecx, dword [esi + 0x2d0]
cmp ecx, 5
jb 0x495be0
mov ecx, dword [esi + 0x2ac]
mov ebx, dword [esi + 0x2b0]
mov byte [esi + 0xf3], 1
mov byte [esi + 0xf4], 1
mov byte [esi + 0xf5], 1
mov byte [esi + 0xf6], 1
mov byte [esi + 0xf7], 1
mov byte [esi + 0xf8], 1
mov dword [esi + 0x5d0], 0xa
push ecx
push ebx
push eax
push edi
push edx
call fcn.004904f0
add esp, 0x14
movzx edx, byte [esi]
lea eax, [esi + 0x28]
mov byte [esi + 0xf3], 1
mov byte [esi + 0xf4], 1
mov byte [esi + 0xf5], 1
mov byte [esi + 0xf6], 1
mov byte [esi + 0xf7], 1
mov byte [esi + 0xf8], 1
lea ecx, [esi + 0x550]
push eax
call fcn.00494cc0
add esp, 4
movzx eax, byte [esi + 0x268]
mov dl, 1
cmp al, 1
jne 0x495cf8
lea edi, [esi + 0x28]
lea ebx, [esi + 0x240]
mov eax, dword [esi + 0x260]
cmp eax, 5
jae 0x495d28
mov ecx, dword [esi + 0x308]
mov dword [esi], edx
cmp ecx, 5
jb 0x495d45
mov ecx, dword [esi + 0x2e4]
mov edx, dword [esi + 0x2e8]
jmp 0x495d4b
xor ebx, ebx
cmp edx, 0x10000000
setb al
jae 0x49968e
mov bl, al
lea edi, [edx*8]
shl ebx, 3
test edi, edi
js 0x49968e
je 0x4967d3
push ebx
push edi
call fcn.00452e70
add esp, 8
test eax, eax
je 0x4967dd
mov ebx, dword [esi + 0xfc]
mov edx, 1
jmp 0x49608d
movzx ecx, byte [esi + 0x310]
lea edi, [esi + 0x28]
lea ebx, [esi + 0x240]
test ecx, ecx
je 0x496847
cmp ecx, 1
jne 0x496861
mov eax, dword [esi + 0x260]
cmp eax, 5
jb 0x495c89
mov eax, dword [esi + 0x23c]
mov ebx, dword [esi + 0x240]
mov ecx, dword [esi + 0x308]
mov dword [esi], edx
cmp ecx, 5
jae 0x495c9a
lea edx, [esi + 0x2e8]
mov byte [esi + 0xbc], 1
mov byte [esi + 0xbd], 1
mov byte [esi + 0xbe], 1
mov byte [esi + 0xbf], 1
mov byte [esi + 0xc0], 1
mov byte [esi + 0xc1], 1
mov dword [esi + 0x5d0], 0xb
push ecx
push edx
push eax
push ebx
push edi
call fcn.004904f0
add esp, 0x14
movzx edx, byte [esi]
lea eax, [esi + 0x28]
mov byte [esi + 0xbc], 1
mov byte [esi + 0xbd], 1
mov byte [esi + 0xbe], 1
mov byte [esi + 0xbf], 1
mov byte [esi + 0xc0], 1
mov byte [esi + 0xc1], 1
lea ecx, [esi + 0x3c8]
push eax
call fcn.00494cc0
add esp, 4
movsd xmm1, qword [esi + 0x490]
movsd xmm2, qword [esi + 0x498]
movsd xmm0, qword [esi + 0x4a0]
lea eax, [esi + 0x28]
mov byte [esi + 0xa4], 1
mov byte [esi + 0xa5], 1
mov byte [esi + 0xa6], 1
mov byte [esi + 0xa7], 1
mov byte [esi + 0xa8], 1
mov byte [esi + 0xa9], 1
mov dword [esi + 0x5d0], 0xc
lea ecx, [esi + 0x140]
lea edx, [esi + 0x68]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x480]
movsd qword [esi + 0x90], xmm2
movsd xmm2, qword [esi + 0x488]
movsd qword [esi + 0x98], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x478]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x470]
movsd qword [esi + 0x70], xmm1
movsd xmm1, qword [esi + 0x388]
movsd qword [esi + 0x68], xmm2
movsd xmm2, qword [esi + 0x380]
movsd qword [esi + 0x58], xmm1
movsd xmm1, qword [esi + 0x378]
movsd qword [esi + 0x50], xmm2
movsd xmm2, qword [esi + 0x370]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x368]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x358]
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x360]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
push eax
call fcn.004930c0
add esp, 4
movsd xmm1, qword [esi + 0x4c8]
movsd xmm2, qword [esi + 0x4d0]
movsd xmm0, qword [esi + 0x4d8]
lea eax, [esi + 0x28]
mov byte [esi + 0x13f], 1
mov dword [esi + 0x5d0], 0x22
lea ecx, [esi + 0x100]
lea edx, [esi + 0x68]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x4b8]
movsd qword [esi + 0x90], xmm2
movsd xmm2, qword [esi + 0x4c0]
movsd qword [esi + 0x98], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x4b0]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x4a8]
movsd qword [esi + 0x70], xmm1
movsd xmm1, qword [esi + 0x3c0]
movsd qword [esi + 0x68], xmm2
movsd xmm2, qword [esi + 0x3b8]
movsd qword [esi + 0x58], xmm1
movsd xmm1, qword [esi + 0x3b0]
movsd qword [esi + 0x50], xmm2
movsd xmm2, qword [esi + 0x3a8]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x3a0]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x390]
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x398]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
push eax
call fcn.004930c0
add esp, 4
lea eax, [esi + 0x100]
mov byte [esi + 0x13f], 0
lea ecx, [esi + 0x4e0]
lea edx, [esi + 0x140]
push eax
call fcn.0049a880
add esp, 4
movzx eax, byte [esi + 0x430]
mov dl, 1
cmp al, 1
jne 0x496027
lea ebx, [esi + 0x28]
mov eax, dword [esi + 0x428]
mov dword [esi], edx
cmp eax, 4
ja 0x496896
lea ecx, [esi + 0x408]
mov edx, dword [esi + 0x460]
cmp edx, 4
jbe 0x4968b1
mov edx, dword [esi + 0x43c]
mov edi, dword [esi + 0x440]
jmp 0x4968b7
movzx ecx, byte [esi + 0x468]
lea ebx, [esi + 0x28]
test ecx, ecx
je 0x49687b
cmp ecx, 1
je 0x496885
test al, al
jne 0x496b6d
xor edx, edx
mov eax, dword [esi + 0x428]
mov dword [esi], edx
cmp eax, 4
ja 0x496896
jmp 0x496001
mov ecx, dword [esi + 0x44]
movsd xmm0, qword [esi + 0x3c]
movsd xmm2, qword [esi + 0x2c]
movsd xmm1, qword [esi + 0x34]
xor edx, edx
mov dword [esi + 0x80], ecx
mov ecx, dword [esi + 0x4c]
movsd qword [esi + 0x78], xmm0
movsd qword [esi + 0x70], xmm1
movsd qword [esi + 0x68], xmm2
mov dword [esi], ecx
mov edi, dword [esi + 0xb0]
mov dword [esi + 0x140], edx
mov edx, dword [esi + 0x80]
movsd xmm0, qword [esi + 0x68]
movsd xmm1, qword [esi + 0x70]
mov dword [esi + 0x5d0], 0x28
lea ecx, [ebx + edi*8]
mov ebx, dword [esi + 0x17c]
mov dword [esi + 0x144], ebx
mov dword [esi + 0x148], eax
mov dword [esi + 0x164], edx
mov edx, dword [esi + 0x14]
movsd qword [esi + 0x14c], xmm0
movsd xmm0, qword [esi + 0x78]
movsd qword [esi + 0x154], xmm1
cmp ebx, 5
lea edx, [edx + edi*8]
mov edi, dword [esi]
movsd qword [esi + 0x15c], xmm0
mov dword [esi + 0x168], ebx
mov dword [esi + 0x16c], edi
lea edi, [esi + 0x148]
cmovb eax, edi
push dword [esi + 0xcc]
mov dword [esi + 0x194], edx
push edx
push dword [esi + 0x188]
mov dword [esi + 0x138], ecx
push ecx
push ebx
push eax
call fcn.00494f90
add esp, 0x18
mov eax, dword [esi + 0x148]
lea ebx, [esi + 0x148]
mov dword [esi + 0x64], eax
nop
mov edx, dword [esi + 0x168]
mov eax, ebx
cmp edx, 5
mov ecx, edx
jb 0x496158
mov ecx, dword [esi + 0x144]
mov eax, dword [esi + 0x64]
test ecx, ecx
je 0x49618a
mov edi, edx
mov edx, dword [eax + ecx*8 - 8]
or edx, dword [eax + ecx*8 - 4]
mov edx, edi
jne 0x49618a
cmp edx, 5
lea eax, [esi + 0x168]
jb 0x496181
mov edx, dword [esi + 0x144]
lea eax, [esi + 0x144]
test edx, edx
je 0x496140
dec edx
mov dword [eax], edx
jmp 0x496140
mov ecx, dword [esi + 0xb0]
mov eax, dword [ebp + 0xc]
cmp ecx, eax
ja 0x499695
sub eax, ecx
cmp edx, 5
mov edi, edx
mov dword [esi + 0x20], ebx
jb 0x4961b9
mov ecx, dword [esi + 0x64]
mov edi, dword [esi + 0x144]
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0xb0]
cmp eax, edi
mov dword [esi + 0xac], eax
jb 0x4996f0
mov eax, dword [ebp + 8]
test edi, edi
mov dword [esi + 0x180], edx
lea eax, [eax + ecx*8]
mov dword [esi], eax
je 0x496293
mov eax, dword [esi]
xor ebx, ebx
mov dword [esi + 0x24], edi
xor ecx, ecx
mov dword [esi + 8], 0
lea eax, [eax + edi*8]
xor edi, edi
mov dword [esi + 0x184], eax
xor eax, eax
nop word [eax + eax]
mov edx, dword [esi]
add ebx, dword [edx + eax*8]
adc ecx, dword [edx + eax*8 + 4]
mov edx, dword [esi + 8]
mov dword [esi + 4], edx
adc dword [esi + 4], 0
mov edx, dword [esi + 0x20]
adc edi, 0
add ebx, dword [edx + eax*8]
adc ecx, dword [edx + eax*8 + 4]
mov edx, dword [esi]
mov dword [edx + eax*8], ebx
mov ebx, dword [esi + 4]
mov dword [edx + eax*8 + 4], ecx
mov ecx, edi
lea eax, [eax + 1]
mov edi, dword [esi + 8]
adc ebx, 0
adc ecx, 0
cmp dword [esi + 0x24], eax
jne 0x496200
cmp ebx, 1
mov edx, dword [esi + 0x180]
mov edi, dword [esi + 0x184]
lea ebx, [esi + 0x148]
sbb ecx, 0
mov ecx, dword [esi + 0x24]
jb 0x496293
mov eax, dword [ebp + 0xc]
shl ecx, 3
lea eax, [eax*8]
sub eax, ecx
mov ecx, dword [esi + 0xb0]
lea ecx, [ecx*8]
sub eax, ecx
nop word [eax + eax]
test eax, eax
je 0x496293
add eax, 0xfffffff8
add dword [edi], 1
adc dword [edi + 4], 0
lea edi, [edi + 8]
jb 0x496280
mov eax, dword [esi + 0xd0]
mov edi, dword [ebp + 0xc]
and eax, 0xfffffffe
mov ecx, eax
cmp eax, edi
mov eax, edi
ja 0x499713
mov edi, ebx
cmp edx, 5
mov ebx, edx
jb 0x4962bd
mov ebx, dword [esi + 0x144]
mov edi, dword [esi + 0x64]
sub eax, ecx
cmp eax, ebx
jb 0x499772
test ebx, ebx
je 0x496393
mov eax, dword [ebp + 8]
mov dword [esi + 0x64], edi
xor edx, edx
xor edi, edi
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], ebx
lea eax, [eax + ecx*8]
xor ecx, ecx
mov dword [esi + 8], eax
lea eax, [eax + ebx*8]
mov dword [esi + 0xd0], eax
xor eax, eax
nop word cs:[eax + eax]
mov ebx, dword [esi + 8]
add eax, dword [ebx + edi*8]
adc edx, dword [ebx + edi*8 + 4]
mov ebx, dword [esi + 0x20]
mov dword [esi + 4], ebx
adc dword [esi + 4], 0
mov ebx, dword [esi + 0x64]
adc ecx, 0
add eax, dword [ebx + edi*8]
adc edx, dword [ebx + edi*8 + 4]
mov ebx, dword [esi + 8]
mov dword [ebx + edi*8], eax
mov eax, dword [esi + 4]
mov dword [ebx + edi*8 + 4], edx
mov ebx, dword [esi + 0x24]
mov edx, ecx
mov ecx, dword [esi + 0x20]
lea edi, [edi + 1]
adc eax, 0
adc edx, 0
cmp ebx, edi
jne 0x496300
cmp eax, 1
mov eax, dword [ebp + 0xc]
mov edi, dword [esi + 0xd0]
sbb edx, 0
mov edx, dword [esi + 0x180]
jb 0x496393
mov ecx, dword [esi + 0xb0]
lea eax, [eax*8]
shl ebx, 3
sub eax, ebx
shl ecx, 4
sub eax, ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
test eax, eax
je 0x496393
add eax, 0xfffffff8
add dword [edi], 1
adc dword [edi + 4], 0
lea edi, [edi + 8]
jb 0x496380
cmp edx, 5
lea eax, [esi + 0x168]
jb 0x4963aa
mov edx, dword [esi + 0x144]
lea eax, [esi + 0x144]
mov ecx, dword [esi + 0x17c]
test edx, edx
je 0x4963c4
mov dword [eax], 0
mov dword [esi + 0x5d0], 0x28
mov dword [esi + 0x5d0], 0x28
lea eax, [esi + 0x140]
push ecx
push 0
push 0
push eax
call fcn.00490a30
add esp, 0x10
mov eax, dword [esi + 0x168]
lea ecx, [esi + 0x148]
cmp eax, 5
jb 0x4963ff
mov eax, dword [esi + 0x144]
mov ecx, dword [esi + 0x148]
mov edx, dword [esi + 0xb0]
push edx
push dword [esi + 0x14]
push edx
push dword [esi + 0xfc]
push eax
push ecx
call fcn.00494f90
add esp, 0x18
mov eax, dword [esi + 0x148]
mov ebx, dword [esi + 0xfc]
mov dword [esi + 0x64], eax
nop dword [eax]
mov eax, dword [esi + 0x168]
lea ecx, [esi + 0x148]
cmp eax, 5
mov edx, eax
jb 0x49644c
mov edx, dword [esi + 0x144]
mov ecx, dword [esi + 0x64]
test edx, edx
je 0x49647a
mov edi, dword [ecx + edx*8 - 8]
or edi, dword [ecx + edx*8 - 4]
jne 0x49647a
cmp eax, 5
lea ecx, [esi + 0x168]
jb 0x496471
mov eax, dword [esi + 0x144]
lea ecx, [esi + 0x144]
test eax, eax
je 0x496430
dec eax
mov dword [ecx], eax
jmp 0x496430
mov dword [esi + 8], eax
cmp eax, 5
lea eax, [esi + 0x148]
mov edi, dword [esi + 8]
jb 0x496494
mov edi, dword [esi + 0x144]
mov eax, dword [esi + 0x64]
cmp edi, dword [ebp + 0xc]
ja 0x499795
test edi, edi
je 0x496553
mov dword [esi + 0x24], eax
mov eax, dword [ebp + 8]
xor edx, edx
xor ecx, ecx
mov dword [esi + 0x20], edi
xor ebx, ebx
mov dword [esi + 0x10], 0
lea eax, [eax + edi*8]
xor edi, edi
mov dword [esi + 0xd0], eax
nop word cs:[eax + eax]
mov eax, dword [ebp + 8]
add edx, dword [eax + ebx*8]
adc ecx, dword [eax + ebx*8 + 4]
mov eax, dword [esi + 0x10]
adc eax, 0
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
adc edi, 0
add edx, dword [eax + ebx*8]
adc ecx, dword [eax + ebx*8 + 4]
mov eax, dword [ebp + 8]
mov dword [eax + ebx*8], edx
mov edx, dword [esi + 4]
mov dword [eax + ebx*8 + 4], ecx
mov ecx, edi
lea ebx, [ebx + 1]
mov edi, dword [esi + 0x10]
adc edx, 0
adc ecx, 0
cmp dword [esi + 0x20], ebx
jne 0x4964d0
cmp edx, 1
mov eax, dword [ebp + 0xc]
mov ebx, dword [esi + 0xfc]
mov edx, dword [esi + 0xd0]
mov edi, dword [esi + 0x20]
sbb ecx, 0
jb 0x496553
lea ecx, [eax*8]
shl edi, 3
sub ecx, edi
nop word cs:[eax + eax]
test ecx, ecx
je 0x496553
add ecx, 0xfffffff8
add dword [edx], 1
adc dword [edx + 4], 0
lea edx, [edx + 8]
jb 0x496540
mov ecx, dword [esi + 8]
lea edx, [esi + 0x148]
cmp ecx, 5
mov eax, ecx
jb 0x49656c
mov eax, dword [esi + 0x144]
mov edx, dword [esi + 0x64]
cmp dword [esi + 0xac], eax
jb 0x4997b8
test eax, eax
je 0x496633
mov ecx, dword [esi]
mov dword [esi + 0x20], edx
xor ebx, ebx
xor edi, edi
xor edx, edx
mov dword [esi + 4], 0
mov dword [esi + 8], eax
lea ecx, [ecx + eax*8]
mov dword [esi + 0x24], ecx
xor ecx, ecx
nop dword [eax]
mov eax, dword [esi]
add ecx, dword [eax + edx*8]
adc ebx, dword [eax + edx*8 + 4]
mov eax, dword [esi + 4]
mov dword [esi + 0x10], eax
adc dword [esi + 0x10], 0
mov eax, dword [esi + 0x20]
adc edi, 0
add ecx, dword [eax + edx*8]
adc ebx, dword [eax + edx*8 + 4]
mov eax, dword [esi]
mov dword [eax + edx*8], ecx
mov ecx, dword [esi + 0x10]
mov dword [eax + edx*8 + 4], ebx
mov eax, dword [esi + 8]
mov ebx, edi
mov edi, dword [esi + 4]
lea edx, [edx + 1]
adc ecx, 0
adc ebx, 0
cmp eax, edx
jne 0x4965a0
cmp ecx, 1
mov edi, dword [esi + 0x24]
sbb ebx, 0
mov ebx, dword [esi + 0xfc]
jb 0x496633
mov edx, eax
mov eax, dword [ebp + 0xc]
shl edx, 3
lea ecx, [eax*8]
mov eax, dword [esi + 0xb0]
sub ecx, edx
lea eax, [eax*8]
sub ecx, eax
nop word cs:[eax + eax]
nop dword [eax]
test ecx, ecx
je 0x496633
add ecx, 0xfffffff8
add dword [edi], 1
adc dword [edi + 4], 0
lea edi, [edi + 8]
jb 0x496620
mov dword [esi + 0x5d0], 0x28
lea eax, [esi + 0x28]
push dword [esi + 0xb0]
push ebx
push dword [esi + 0x188]
push dword [esi + 0x138]
push eax
call fcn.004918d0
add esp, 0x14
movsd xmm1, qword [esi + 0x50]
movsd xmm2, qword [esi + 0x48]
movzx eax, byte [esi + 0x28]
movsd xmm0, qword [esi + 0x58]
mov dword [esi + 0x5d0], 0x29
movsd qword [esi + 0x120], xmm1
movsd xmm1, qword [esi + 0x40]
movsd qword [esi + 0x118], xmm2
movsd xmm2, qword [esi + 0x38]
mov byte [esi + 0x10], al
movsd qword [esi + 0x128], xmm0
movsd qword [esi + 0x110], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x108], xmm2
movsd qword [esi + 0x100], xmm1
push dword [esi + 0xb0]
push dword [esi + 0x14]
push dword [esi + 0xcc]
push dword [esi + 0x194]
lea eax, [esi + 0x28]
push eax
call fcn.004918d0
add esp, 0x14
movsd xmm1, qword [esi + 0x50]
movsd xmm2, qword [esi + 0x48]
movzx ecx, byte [esi + 0x10]
movsd xmm0, qword [esi + 0x58]
movzx eax, byte [esi + 0x28]
mov edx, dword [esi + 0x17c]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x40]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x30]
cmp cl, 1
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
je 0x497d2b
test eax, eax
je 0x49680b
cmp eax, 1
je 0x497d2b
test cl, cl
je 0x496813
mov eax, dword [esi + 0x168]
lea ecx, [esi + 0x168]
cmp eax, 5
jb 0x49676e
mov eax, dword [esi + 0x144]
lea ecx, [esi + 0x144]
test eax, eax
je 0x496778
mov dword [ecx], 0
mov dword [esi + 0x5d0], 0x2a
push edx
push 0
push 0
lea eax, [esi + 0x140]
push eax
call fcn.00490a30
add esp, 0x10
lea ecx, [esi + 0x148]
mov eax, dword [esi + 0x168]
cmp eax, 5
jb 0x4967b3
mov eax, dword [esi + 0x144]
mov ecx, dword [esi + 0x148]
mov edx, dword [esi + 0x128]
cmp edx, 4
jbe 0x497da1
mov edx, dword [esi + 0x104]
mov edi, dword [esi + 0x108]
jmp 0x497da7
mov eax, ebx
test eax, eax
jne 0x495ce8
push edi
push ebx
call fcn.005b14d0
add esp, 8
ud2
test al, al
je 0x495bae
mov dword [esi], 0
mov eax, dword [esi + 0x298]
cmp eax, 5
jb 0x495bc9
jmp 0x495bbd
test cl, cl
je 0x496751
mov eax, dword [esi + 0x128]
mov ebx, dword [esi]
cmp eax, 4
jbe 0x497cf3
mov eax, dword [esi + 0x104]
mov ecx, dword [esi + 0x108]
mov edx, dword [esi + 0x90]
cmp edx, 4
ja 0x497d08
lea edi, [esi + 0x70]
jmp 0x497d0e
test al, al
je 0x496865
xor edx, edx
mov eax, dword [esi + 0x260]
cmp eax, 5
jb 0x495c89
jmp 0x495d28
test al, al
je 0x49684b
mov dl, 2
mov eax, dword [esi + 0x260]
cmp eax, 5
jb 0x495c89
jmp 0x495d28
test al, al
je 0x496b6d
xor edx, edx
mov eax, dword [esi + 0x428]
mov dword [esi], edx
cmp eax, 4
jbe 0x496001
mov eax, dword [esi + 0x404]
mov ecx, dword [esi + 0x408]
mov edx, dword [esi + 0x460]
cmp edx, 4
ja 0x496016
lea edi, [esi + 0x440]
mov byte [esi + 0xc2], 1
mov byte [esi + 0xc3], 1
mov byte [esi + 0xc4], 1
mov byte [esi + 0xc5], 1
mov byte [esi + 0xc6], 1
mov byte [esi + 0xc7], 1
mov dword [esi + 0x5d0], 0xd
push edx
push edi
push eax
push ecx
push ebx
call fcn.004904f0
add esp, 0x14
movzx edx, byte [esi]
lea eax, [esi + 0x28]
mov byte [esi + 0xc2], 1
mov byte [esi + 0xc3], 1
mov byte [esi + 0xc4], 1
mov byte [esi + 0xc5], 1
mov byte [esi + 0xc6], 1
mov byte [esi + 0xc7], 1
lea ecx, [esi + 0x518]
push eax
call fcn.00494cc0
add esp, 4
movsd xmm1, qword [esi + 0x420]
movsd xmm2, qword [esi + 0x428]
movsd xmm0, qword [esi + 0x430]
lea eax, [esi + 0x28]
mov byte [esi + 0x18], 1
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1c], 1
mov byte [esi + 0x1d], 1
mov dword [esi + 0x5d0], 0xe
lea ecx, [esi + 0x100]
lea edx, [esi + 0x68]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x410]
movsd qword [esi + 0x90], xmm2
movsd xmm2, qword [esi + 0x418]
movsd qword [esi + 0x98], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x408]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x400]
movsd qword [esi + 0x70], xmm1
movsd xmm1, qword [esi + 0x268]
movsd qword [esi + 0x68], xmm2
movsd xmm2, qword [esi + 0x260]
movsd qword [esi + 0x58], xmm1
movsd xmm1, qword [esi + 0x258]
movsd qword [esi + 0x50], xmm2
movsd xmm2, qword [esi + 0x250]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x248]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x238]
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x240]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
push eax
call fcn.004930c0
add esp, 4
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x118]
movsd xmm0, qword [esi + 0x128]
movzx eax, byte [esi + 0x130]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x110]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x100]
movsd qword [esi + 0x50], xmm0
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
mov ecx, dword [esi + 0x50]
cmp ecx, 4
jbe 0x496a9c
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
test ecx, ecx
jne 0x496aa7
jmp 0x496ba8
lea edx, [esi + 0x30]
test ecx, ecx
je 0x496ba8
shl ecx, 3
xor edi, edi
xor ebx, ebx
mov byte [esi + 0x14], al
mov dword [esi + 8], 0
nop dword [eax + eax]
mov dword [esi], edi
mov dword [esi + 4], ebx
mov ebx, dword [edx + 4]
mov edi, dword [edx]
mov eax, ebx
shld ebx, edi, 1
add edi, edi
shr eax, 0x1f
add edi, dword [esi]
adc ebx, dword [esi + 4]
mov dword [edx], edi
mov edi, eax
mov dword [edx + 4], ebx
mov ebx, dword [esi + 8]
lea edx, [edx + 8]
adc edi, ebx
adc ebx, 0
add ecx, 0xfffffff8
jne 0x496ac0
mov eax, edi
or eax, ebx
movzx eax, byte [esi + 0x14]
je 0x496ba8
mov edx, dword [esi + 0x50]
mov dword [esi], edi
cmp edx, 5
jb 0x496b18
mov ecx, dword [esi + 0x2c]
cmp ecx, edx
je 0x496b1d
mov edi, dword [esi + 0x30]
lea edx, [esi + 0x2c]
jmp 0x496b8d
cmp edx, 4
jne 0x496b85
inc edx
mov dword [esi + 4], ebx
je 0x499894
dec edx
mov dword [esi + 0x5d0], 0x21
bsr ecx, edx
mov edx, 0xffffffff
not ecx
shr edx, cl
inc edx
je 0x499894
lea ecx, [esi + 0x28]
call fcn.00491210
mov ebx, dword [esi + 4]
cmp eax, 0x80000001
jne 0x499890
lea eax, [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
mov edi, dword [esi + 0x30]
mov dword [esi + 8], eax
movzx eax, byte [esi + 0x14]
jmp 0x496b90
mov dl, 2
mov eax, dword [esi + 0x428]
mov dword [esi], edx
cmp eax, 4
ja 0x496896
jmp 0x496001
mov ecx, edx
lea edx, [esi + 0x50]
lea edi, [esi + 0x30]
mov dword [esi + 8], edx
mov edx, dword [esi]
mov dword [edi + ecx*8 + 4], ebx
mov dword [edi + ecx*8], edx
mov edx, dword [esi + 8]
mov dword [esi + 0x5d0], 0xe
inc dword [edx]
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
movzx edx, al
lea eax, [esi + 0x140]
mov byte [esi + 0x18], 1
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1c], 1
mov byte [esi + 0x1d], 1
mov dword [esi + 0x5d0], 0xe
lea ecx, [esi + 0x68]
movsd qword [esi + 0x160], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x158], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x168], xmm0
movsd qword [esi + 0x150], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x140], xmm2
movsd qword [esi + 0x148], xmm1
push eax
call fcn.00494cc0
add esp, 4
movsd xmm2, qword [esi + 0x298]
movsd xmm1, qword [esi + 0x290]
movsd xmm0, qword [esi + 0x2a0]
lea eax, [esi + 0x28]
mov byte [esi + 0x18], 1
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1c], 1
mov byte [esi + 0x1d], 0
lea ecx, [esi + 0x140]
lea edx, [esi + 0x68]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x288]
movsd xmm1, qword [esi + 0x280]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x270]
movsd xmm1, qword [esi + 0x278]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00494470
add esp, 4
movsd xmm1, qword [esi + 0x458]
movsd xmm2, qword [esi + 0x460]
movsd xmm0, qword [esi + 0x468]
lea eax, [esi + 0x28]
mov byte [esi + 0xaa], 1
mov byte [esi + 0xab], 1
mov dword [esi + 0x5d0], 0x1f
lea ecx, [esi + 0x100]
lea edx, [esi + 0x68]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x448]
movsd qword [esi + 0x90], xmm2
movsd xmm2, qword [esi + 0x450]
movsd qword [esi + 0x98], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x440]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x438]
movsd qword [esi + 0x70], xmm1
movsd xmm1, qword [esi + 0x310]
movsd qword [esi + 0x68], xmm2
movsd xmm2, qword [esi + 0x308]
movsd qword [esi + 0x58], xmm1
movsd xmm1, qword [esi + 0x300]
movsd qword [esi + 0x50], xmm2
movsd xmm2, qword [esi + 0x2f8]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x2f0]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x2e0]
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x2e8]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
push eax
call fcn.004930c0
add esp, 4
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x118]
movsd xmm0, qword [esi + 0x128]
movzx ebx, byte [esi + 0x130]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x110]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x100]
movsd qword [esi + 0x50], xmm0
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
mov ecx, dword [esi + 0x50]
cmp ecx, 4
jbe 0x496e10
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
test ecx, ecx
jne 0x496e1b
jmp 0x496eed
lea edx, [esi + 0x30]
test ecx, ecx
je 0x496eed
shl ecx, 3
xor eax, eax
xor edi, edi
mov byte [esi + 0x14], bl
mov dword [esi + 8], 0
nop dword [eax]
mov dword [esi + 4], edi
mov ebx, dword [edx + 4]
mov edi, dword [edx]
mov dword [esi], eax
mov eax, ebx
shld ebx, edi, 1
add edi, edi
shr eax, 0x1f
add edi, dword [esi]
adc ebx, dword [esi + 4]
mov dword [edx], edi
mov edi, dword [esi + 8]
adc eax, edi
mov dword [edx + 4], ebx
lea edx, [edx + 8]
adc edi, 0
add ecx, 0xfffffff8
jne 0x496e30
movzx ebx, byte [esi + 0x14]
mov dword [esi], eax
or eax, edi
je 0x496eed
mov edx, dword [esi + 0x50]
mov dword [esi + 4], edi
cmp edx, 5
jb 0x496e81
mov ecx, dword [esi + 0x2c]
cmp ecx, edx
je 0x496e86
jmp 0x496ec5
cmp edx, 4
jne 0x496ecd
inc edx
je 0x4998b8
dec edx
mov dword [esi + 0x5d0], 0x20
bsr ecx, edx
mov edx, 0xffffffff
not ecx
shr edx, cl
inc edx
je 0x4998b8
lea ecx, [esi + 0x28]
call fcn.00491210
movzx ebx, byte [esi + 0x14]
cmp eax, 0x80000001
jne 0x4998b4
mov ecx, dword [esi + 0x2c]
lea edx, [esi + 0x2c]
mov edi, dword [esi + 0x30]
jmp 0x496ed5
mov ecx, edx
lea edi, [esi + 0x30]
lea edx, [esi + 0x50]
mov eax, dword [esi]
mov dword [edi + ecx*8], eax
mov eax, dword [esi + 4]
mov dword [edi + ecx*8 + 4], eax
inc dword [edx]
mov dword [esi + 0x5d0], 0x1f
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
lea eax, [esi + 0x1d0]
mov byte [esi + 0xaa], 1
mov byte [esi + 0xab], 1
mov dword [esi + 0x5d0], 0x1f
movzx edx, bl
lea ecx, [esi + 0x68]
movsd qword [esi + 0x1f0], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x1e8], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x1f8], xmm0
movsd qword [esi + 0x1e0], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x1d0], xmm2
movsd qword [esi + 0x1d8], xmm1
push eax
call fcn.00494cc0
add esp, 4
movsd xmm2, qword [esi + 0x2d0]
movsd xmm1, qword [esi + 0x2c8]
movsd xmm0, qword [esi + 0x2d8]
lea eax, [esi + 0x28]
mov byte [esi + 0xaa], 1
mov byte [esi + 0xab], 0
lea ecx, [esi + 0x100]
lea edx, [esi + 0x68]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x2c0]
movsd xmm1, qword [esi + 0x2b8]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x2a8]
movsd xmm1, qword [esi + 0x2b0]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00494470
add esp, 4
lea eax, [esi + 0x100]
mov byte [esi + 0xaa], 0
mov byte [esi + 0xab], 0
lea ecx, [esi + 0x588]
lea edx, [esi + 0x140]
push eax
call fcn.0049a880
add esp, 4
movsd xmm2, qword [esi + 0x5b0]
movsd xmm1, qword [esi + 0x5a8]
movsd xmm0, qword [esi + 0x5b8]
lea eax, [esi + 0x4e0]
mov byte [esi + 0x18], 1
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1b], 0
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1d], 0
mov dword [esi + 0x5d0], 0xe
lea ecx, [esi + 0x68]
lea edx, [esi + 0x28]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x5a0]
movsd xmm1, qword [esi + 0x598]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x588]
movsd xmm1, qword [esi + 0x590]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00493ef0
add esp, 4
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
movsd xmm0, qword [esi + 0x90]
movzx eax, byte [esi + 0x98]
movsd qword [esi + 0x120], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x118], xmm2
movsd xmm2, qword [esi + 0x68]
movsd qword [esi + 0x128], xmm0
mov byte [esi + 0x18f], al
movsd qword [esi + 0x110], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0x100], xmm2
movsd qword [esi + 0x108], xmm1
cmp dword [esi + 0x128], 4
jbe 0x49712b
mov ecx, dword [esi + 0x108]
lea eax, [esi + 0x104]
mov eax, dword [eax]
mov dword [esi + 0x184], ecx
test eax, eax
jne 0x497147
jmp 0x49756b
lea eax, [esi + 0x128]
lea ecx, [esi + 0x108]
mov eax, dword [eax]
mov dword [esi + 0x184], ecx
test eax, eax
je 0x49756b
mov ecx, dword [esi + 0x184]
xor ebx, ebx
xor edx, edx
lea eax, [ecx + eax*8]
jmp 0x4971cb
mov dword [esi + 0xac], 0
mov dword [esi + 0xd0], 0
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 8]
shld ecx, eax, 1
add eax, eax
or ecx, dword [esi + 0xac]
or eax, dword [esi + 0xd0]
mov dword [esi + 8], ecx
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x138]
mov ecx, 3
mov dword [esi + 0x14], eax
mul ecx
lea ecx, [edi + edi*2]
add ecx, edx
sub ebx, eax
mov edx, dword [esi + 0xfc]
mov eax, dword [esi + 0x194]
sbb edx, ecx
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0x184], eax
mov dword [eax + 4], edi
mov dword [eax], ecx
je 0x49756b
mov edi, dword [eax - 8]
mov ecx, dword [eax - 4]
mov dword [esi + 4], eax
mov eax, edx
mov dword [esi], eax
mov dword [esi + 0xfc], ecx
or ecx, edx
mov edx, edi
mov dword [esi + 0x138], edi
or edx, ebx
or edx, ecx
mov ecx, ebx
sete byte [esi + 8]
bsr edx, ebx
bsr edi, eax
mov dword [esi + 0xac], ecx
xor edx, 0x1f
xor edi, 0x1f
add edx, 0x20
test eax, eax
mov eax, dword [esi + 0xfc]
cmovne edx, edi
bsr edi, dword [esi + 0x138]
bsr ebx, eax
xor edi, 0x1f
xor ebx, 0x1f
add edi, 0x20
test eax, eax
mov eax, 0x7e
cmovne edi, ebx
mov ebx, ecx
mov ecx, 0
add edi, 0x40
or ebx, dword [esi]
mov ebx, 0
cmovne edi, edx
mov edx, 0x7f
sub eax, edi
mov edi, 0
sbb ecx, ecx
mov dword [esi + 0x64], eax
sbb edi, edi
mov dword [esi + 0x20], ecx
sbb ebx, ebx
cmp edx, eax
mov edx, 0
mov eax, dword [esi + 4]
mov dword [esi + 0x24], edi
sbb edx, ecx
mov edx, 0
mov ecx, 0
sbb edx, edi
mov edx, 0
sbb edx, ebx
setb dl
add eax, 0xfffffff8
or dl, byte [esi + 8]
mov edx, dword [esi + 0xfc]
mov dword [esi + 0x194], eax
mov eax, dword [esi + 0x138]
cmovne edx, ecx
cmovne eax, ecx
mov dword [esi + 8], edx
jne 0x49718f
mov edi, ebx
mov ebx, dword [esi + 0x64]
mov ecx, dword [esi + 0x20]
mov edx, ebx
or ecx, edi
xor edx, 0x7f
or edx, dword [esi + 0x24]
or ecx, edx
je 0x49718f
mov eax, dword [esi + 0x138]
mov dword [esi + 0x348], eax
mov eax, dword [esi + 0xfc]
mov dword [esi + 0x34c], eax
mov eax, dword [esi + 0xac]
mov dword [esi + 0x350], eax
mov eax, dword [esi]
mov dword [esi + 0x344], 0
mov dword [esi + 0x340], 0
mov dword [esi + 0x33c], 0
mov dword [esi + 0x338], 0
mov dword [esi + 0x354], eax
mov eax, ebx
xor al, 0x7f
mov ch, al
shr al, 3
and al, 0xf
and ch, 7
neg al
mov cl, ch
movsx eax, al
mov edx, dword [esi + eax + 0x350]
mov dword [esi + 0xb0], edi
mov edi, dword [esi + eax + 0x354]
shld edi, edx, cl
shl edx, cl
not cl
mov dword [esi + 0x17c], edi
mov dword [esi + 0xcc], edx
mov edx, dword [esi + eax + 0x34c]
mov edi, dword [esi + eax + 0x348]
mov eax, edx
shr eax, 1
shr eax, cl
mov cl, ch
shld edx, edi, cl
shl edi, cl
mov ecx, dword [esi + 0x20]
add ebx, 1
mov dword [esi + 0x14], edi
mov edi, dword [esi + 0x24]
mov dword [esi + 8], edx
mov edx, ebx
mov ebx, dword [esi + 0xb0]
adc ecx, 0
adc edi, 0
adc ebx, 0
jb 0x497160
or dword [esi + 0xcc], eax
mov eax, dword [esi + 0x138]
mov dword [esi + 0x318], eax
mov eax, dword [esi + 0xfc]
mov dword [esi + 0x31c], eax
mov eax, dword [esi + 0xac]
mov dword [esi + 0x320], eax
mov eax, dword [esi]
mov dword [esi + 0x334], 0
mov dword [esi + 0x330], 0
mov dword [esi + 0x32c], 0
mov dword [esi + 0x328], 0
mov dword [esi + 0x324], eax
mov eax, edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edi
mov dword [esi + 0xb0], ebx
mov dword [esi + 0x64], edx
mov ch, dl
shr al, 3
and ch, 7
and al, 0xf
mov cl, ch
movzx eax, al
mov edi, dword [esi + eax + 0x320]
mov edx, dword [esi + eax + 0x324]
mov ebx, edi
add edi, edi
shrd ebx, edx, cl
mov dword [esi], ebx
mov ebx, dword [esi + eax + 0x31c]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 4]
shr ebx, cl
not cl
shl edi, cl
mov cl, ch
or edi, ebx
shr edx, cl
mov dword [esi + 0x188], edi
mov edi, dword [esi + 4]
mov eax, dword [esi + eax + 0x318]
mov dword [esi + 0xac], 0
mov dword [esi + 0xd0], 0
shrd eax, edi, cl
mov dword [esi + 0x180], eax
mov eax, dword [esi + 0x17c]
nop
mov ecx, dword [esi]
mov edi, dword [esi + 0x180]
mov ebx, dword [esi + 0xac]
mov dword [esi + 0xac], 0
shld edx, ecx, 1
mov dword [esi + 4], edx
mov edx, dword [esi + 0x188]
shld ecx, edx, 1
shld edx, edi, 1
shld edi, eax, 1
mov dword [esi], ecx
mov ecx, dword [esi + 0xcc]
shld eax, ecx, 1
or eax, ebx
mov dword [esi + 0x17c], eax
mov eax, dword [esi + 8]
shld ecx, eax, 1
or ecx, ebx
mov dword [esi + 0xcc], ecx
mov ecx, dword [esi + 0x14]
shld eax, ecx, 1
add ecx, ecx
or ecx, dword [esi + 0xd0]
or eax, ebx
mov ebx, dword [esi + 4]
mov dword [esi + 8], eax
mov eax, 2
cmp eax, edi
mov dword [esi + 0x14], ecx
mov ecx, 0
sbb ecx, edx
mov ecx, 0
sbb ecx, dword [esi]
mov ecx, 0
sbb ecx, ebx
sar ecx, 0x1f
mov eax, ecx
and ecx, 3
and eax, 1
sub edi, ecx
mov ecx, dword [esi + 0x20]
sbb edx, 0
mov dword [esi + 0xd0], eax
mov eax, ebx
mov ebx, dword [esi + 0x64]
mov dword [esi + 0x180], edi
sbb dword [esi], 0
mov dword [esi + 0x188], edx
mov edx, dword [esi + 0xb0]
sbb eax, 0
add ebx, 0xffffffff
mov dword [esi + 4], eax
mov eax, dword [esi + 0x24]
adc ecx, 0xffffffff
mov dword [esi + 0x64], ebx
mov dword [esi + 0x20], ecx
adc eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esi + 0x24], eax
or ebx, eax
mov eax, dword [esi + 0x17c]
or ecx, edx
mov dword [esi + 0xb0], edx
mov edx, dword [esi + 4]
or ebx, ecx
jne 0x497470
jmp 0x497174
movsd xmm3, qword [esi + 0x128]
movsd xmm2, qword [esi + 0x120]
movsd xmm0, qword [esi + 0x100]
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x50], xmm3
movsd qword [esi + 0x48], xmm2
movq xmm3, qword [esi + 0x118]
movsd xmm2, qword [esi + 0x110]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm0
movq qword [esi + 0x40], xmm3
movsd qword [esi + 0x38], xmm2
mov edi, dword [esi + 0x30]
nop dword [eax]
mov eax, dword [esi + 0x50]
lea ecx, [esi + 0x30]
cmp eax, 5
mov ebx, eax
jb 0x4975d2
mov ebx, dword [esi + 0x2c]
mov ecx, edi
test ebx, ebx
je 0x4975f7
mov edx, dword [ecx + ebx*8 - 8]
or edx, dword [ecx + ebx*8 - 4]
jne 0x4975f7
cmp eax, 5
lea ecx, [esi + 0x50]
jb 0x4975ee
mov eax, dword [esi + 0x2c]
lea ecx, [esi + 0x2c]
test eax, eax
je 0x4975c0
dec eax
mov dword [ecx], eax
jmp 0x4975c0
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
movzx edx, byte [esi + 0x18f]
lea eax, [esi + 0x140]
mov byte [esi + 0x18], 1
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1b], 0
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1d], 0
mov dword [esi + 0x5d0], 0xe
lea ecx, [esi + 0x198]
movsd qword [esi + 0x160], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x158], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x168], xmm0
movsd qword [esi + 0x150], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x140], xmm2
movsd qword [esi + 0x148], xmm1
push eax
call fcn.00494cc0
add esp, 4
movsd xmm2, qword [esi + 0x508]
movsd xmm1, qword [esi + 0x500]
movsd xmm0, qword [esi + 0x510]
lea eax, [esi + 0x518]
mov byte [esi + 0xc8], 1
mov byte [esi + 0xc9], 1
mov byte [esi + 0xca], 1
mov dword [esi + 0x5d0], 0xf
lea ecx, [esi + 0x68]
lea edx, [esi + 0x28]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x4f8]
movsd xmm1, qword [esi + 0x4f0]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x4e0]
movsd xmm1, qword [esi + 0x4e8]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00493ef0
add esp, 4
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
movq xmm0, qword [esi + 0x90]
movzx eax, byte [esi + 0x98]
movsd qword [esi + 0x120], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x118], xmm2
movq xmm2, qword [esi + 0x68]
movq qword [esi + 0x128], xmm0
mov byte [esi + 8], al
movsd qword [esi + 0x110], xmm1
movq xmm1, qword [esi + 0x70]
movq qword [esi + 0x100], xmm2
movq qword [esi + 0x108], xmm1
cmp dword [esi + 0x128], 4
jbe 0x497793
mov edi, dword [esi + 0x108]
lea eax, [esi + 0x104]
mov eax, dword [eax]
test eax, eax
jne 0x4977a9
jmp 0x4978a2
lea eax, [esi + 0x128]
lea edi, [esi + 0x108]
mov eax, dword [eax]
test eax, eax
je 0x4978a2
lea ecx, [eax - 1]
lea ebx, [edi + eax*8]
and ecx, 0x1fffffff
je 0x497877
inc ecx
movdqa xmm0, xmmword [0x5fc8f0]
lea eax, [edi + eax*8 - 0x10]
pxor xmm1, xmm1
mov dword [esi + 0x14], edi
mov edx, ecx
mov dword [esi + 0x24], ecx
and edx, 0xfffffffe
lea ecx, [edx*8]
mov dword [esi + 0x64], edx
sub ebx, ecx
mov dword [esi + 0x20], ebx
nop word cs:[eax + eax]
movdqu xmm2, xmmword [eax]
mov dword [esi + 4], edx
mov edx, dword [eax]
pshufd xmm3, xmm1, 0xee
pshufd xmm1, xmm2, 0x4e
pshufd xmm4, xmm2, 0xff
pshufd xmm2, xmm2, 0x55
movd ecx, xmm2
movd edi, xmm4
movd ebx, xmm1
pand xmm1, xmm0
shrd edx, ecx, 1
shrd ecx, ebx, 1
shrd ebx, edi, 1
mov dword [esi], edx
movd edx, xmm3
movd xmm3, ebx
movd xmm4, ecx
movd xmm5, dword [esi]
shld edx, edi, 0x1f
movd xmm2, edx
mov edx, dword [esi + 4]
punpckldq xmm3, xmm2
punpckldq xmm5, xmm4
punpcklqdq xmm5, xmm3
movdqu xmmword [eax], xmm5
add eax, 0xfffffff0
add edx, 0xfffffffe
jne 0x4977f0
mov eax, dword [esi + 0x64]
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x20]
cmp dword [esi + 0x24], eax
je 0x4978a2
pshufd xmm0, xmm1, 0xee
movd eax, xmm0
jmp 0x497880
xor eax, eax
nop dword [eax]
mov edx, dword [ebx - 4]
mov ecx, dword [ebx - 8]
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
and ecx, 1
mov dword [ebx - 8], edx
lea edx, [ebx - 8]
mov dword [ebx - 4], eax
mov eax, ecx
cmp edx, edi
mov ebx, edx
jne 0x497880
movsd xmm3, qword [esi + 0x128]
movsd xmm2, qword [esi + 0x120]
movsd xmm0, qword [esi + 0x100]
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x50], xmm3
movsd qword [esi + 0x48], xmm2
movq xmm3, qword [esi + 0x118]
movsd xmm2, qword [esi + 0x110]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm0
movq qword [esi + 0x40], xmm3
movsd qword [esi + 0x38], xmm2
mov edi, dword [esi + 0x30]
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + 0x50]
lea ecx, [esi + 0x30]
cmp eax, 5
mov ebx, eax
jb 0x497912
mov ebx, dword [esi + 0x2c]
mov ecx, edi
test ebx, ebx
je 0x497937
mov edx, dword [ecx + ebx*8 - 8]
or edx, dword [ecx + ebx*8 - 4]
jne 0x497937
cmp eax, 5
lea ecx, [esi + 0x50]
jb 0x49792e
mov eax, dword [esi + 0x2c]
lea ecx, [esi + 0x2c]
test eax, eax
je 0x497900
dec eax
mov dword [ecx], eax
jmp 0x497900
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
movzx edx, byte [esi + 8]
lea eax, [esi + 0x140]
mov byte [esi + 0xc8], 1
mov byte [esi + 0xc9], 1
mov byte [esi + 0xca], 1
mov dword [esi + 0x5d0], 0xf
lea ecx, [esi + 0x1d0]
movsd qword [esi + 0x160], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x158], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x168], xmm0
movsd qword [esi + 0x150], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x140], xmm2
movsd qword [esi + 0x148], xmm1
push eax
call fcn.00494cc0
add esp, 4
movsd xmm2, qword [esi + 0x540]
movsd xmm1, qword [esi + 0x538]
movsd xmm0, qword [esi + 0x548]
lea eax, [esi + 0x550]
mov byte [esi + 0xf9], 1
mov byte [esi + 0xfa], 1
mov byte [esi + 0xfb], 1
mov dword [esi + 0x5d0], 0x10
lea ecx, [esi + 0x140]
lea edx, [esi + 0x28]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x530]
movsd xmm1, qword [esi + 0x528]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x518]
movsd xmm1, qword [esi + 0x520]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00493ef0
add esp, 4
movsd xmm2, qword [esi + 0x1c0]
movsd xmm1, qword [esi + 0x1b8]
movsd xmm0, qword [esi + 0x1c8]
movzx edx, byte [esi + 0x170]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x1b0]
movsd xmm1, qword [esi + 0x1a8]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x198]
movsd xmm1, qword [esi + 0x1a0]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
movzx eax, byte [esi + 0x58]
cmp al, 1
jne 0x497adb
mov ecx, dword [esi + 0x168]
mov byte [esi], dl
cmp ecx, 4
jbe 0x497b6d
mov ecx, dword [esi + 0x144]
mov eax, dword [esi + 0x148]
jmp 0x497b73
movzx edi, dl
lea ecx, [esi + 0x100]
test edi, edi
je 0x497c27
cmp edi, 1
jne 0x497cc9
movsd xmm1, qword [esi + 0x1b8]
movsd xmm2, qword [esi + 0x1b0]
mov cl, 2
movsd xmm0, qword [esi + 0x1c0]
mov edx, dword [esi + 0x5c]
sub cl, al
mov eax, dword [esi + 0x59]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x1a8]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x198]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x1a0]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
mov byte [esi + 0x98], cl
mov dword [esi + 0x99], eax
mov dword [esi + 0x9c], edx
jmp 0x49811b
lea eax, [esi + 0x148]
lea ecx, [eax + ecx*8]
mov dword [esi + 0x128], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0x5d0], 0x1d
push ecx
push eax
lea eax, [esi + 0x100]
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x118]
movsd xmm0, qword [esi + 0x128]
movzx eax, byte [esi]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x110]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x100]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
mov byte [esi + 0x98], al
mov eax, dword [esi + 0x50]
cmp eax, 5
jb 0x49811b
shl eax, 3
push 8
push eax
push dword [esi + 0x30]
call fcn.00452e30
add esp, 0xc
jmp 0x49811b
test al, al
je 0x497cd1
movsd xmm1, qword [esi + 0x1b8]
movsd xmm2, qword [esi + 0x1b0]
movsd xmm0, qword [esi + 0x1c0]
lea eax, [esi + 0x140]
mov dword [esi + 0x14], edi
mov byte [esi + 0x1e], 0
mov dword [esi + 0x5d0], 0x1c
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x1a8]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x198]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x1a0]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push eax
lea eax, [esi + 0x68]
push eax
push ecx
call fcn.0048a520
add esp, 0xc
mov edx, dword [esi + 0x14]
lea eax, [esi + 0x100]
mov byte [esi + 0x1e], 0
lea ecx, [esi + 0x68]
push eax
call fcn.00494cc0
add esp, 4
jmp 0x49811b
test al, al
je 0x497c2f
mov ebx, dword [esi + 0x168]
mov byte [esi], dl
cmp ebx, 4
jbe 0x497fa8
mov ebx, dword [esi + 0x144]
mov eax, dword [esi + 0x148]
jmp 0x497fae
lea ecx, [esi + 0x108]
mov edx, dword [esi + 0x90]
cmp edx, 4
jbe 0x49683f
mov edx, dword [esi + 0x6c]
mov edi, dword [esi + 0x70]
mov dword [esi + 0x5d0], 0x2a
push edx
push edi
push eax
push ecx
push dword [esi + 0xac]
push ebx
call fcn.00494f90
add esp, 0x18
mov eax, dword [esi + 0x90]
cmp eax, 5
jb 0x497d62
shl eax, 3
push 8
push eax
push dword [esi + 0x70]
call fcn.00452e30
add esp, 0xc
mov eax, dword [esi + 0x128]
cmp eax, 5
jae 0x497d6d
mov eax, dword [esi + 0x168]
cmp eax, 5
jae 0x497d90
jmp 0x499248
mov eax, dword [esi + 0x128]
cmp eax, 5
jb 0x497d52
shl eax, 3
push 8
push eax
push dword [esi + 0x108]
call fcn.00452e30
add esp, 0xc
mov eax, dword [esi + 0x168]
cmp eax, 5
jb 0x499248
shl eax, 3
push 8
push eax
push dword [esi + 0x148]
jmp 0x499240
lea edi, [esi + 0x108]
mov ebx, dword [esi + 0x90]
mov dword [esi + 0x10], edi
mov edi, ecx
cmp ebx, 4
jbe 0x497dbf
mov ebx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x70]
jmp 0x497dc2
lea ecx, [esi + 0x70]
push ebx
push ecx
push edx
push dword [esi + 0x10]
push eax
push edi
call fcn.00494f90
add esp, 0x18
lea ebx, [esi + 0x148]
mov eax, dword [esi + 0x148]
mov dword [esi + 0x10], eax
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edx, dword [esi + 0x168]
mov eax, ebx
cmp edx, 5
mov ecx, edx
jb 0x497e08
mov edx, dword [esi + 0x144]
mov eax, dword [esi + 0x10]
test edx, edx
je 0x497e36
mov edi, dword [eax + edx*8 - 8]
or edi, dword [eax + edx*8 - 4]
jne 0x497e36
cmp ecx, 5
lea eax, [esi + 0x168]
jb 0x497e2d
mov ecx, dword [esi + 0x144]
lea eax, [esi + 0x144]
test ecx, ecx
je 0x497df0
dec ecx
mov dword [eax], ecx
jmp 0x497df0
mov edx, ecx
cmp ecx, 5
jb 0x497e46
mov edx, dword [esi + 0x144]
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0xac]
cmp ecx, edx
cmovae ecx, edx
test ecx, ecx
mov eax, ecx
mov dword [esi + 0xac], ecx
je 0x497f31
mov eax, dword [esi + 0xac]
mov ecx, dword [esi]
mov dword [esi + 8], edx
mov dword [esi + 4], ebx
xor edx, edx
xor ebx, ebx
xor edi, edi
lea eax, [ecx + eax*8]
xor ecx, ecx
mov dword [esi + 0x14], eax
xor eax, eax
nop
mov dword [esi + 0x10], ecx
mov ecx, dword [esi]
add edx, dword [ecx + eax*8]
mov ecx, dword [esi]
adc ebx, dword [ecx + eax*8 + 4]
mov ecx, dword [esi + 4]
adc edi, 0
adc dword [esi + 0x10], 0
sub edx, dword [ecx + eax*8]
sbb ebx, dword [ecx + eax*8 + 4]
mov ecx, dword [esi]
mov dword [ecx + eax*8], edx
mov ecx, dword [esi]
mov edx, edi
sbb edx, 0
mov dword [ecx + eax*8 + 4], ebx
mov ebx, dword [esi + 0x10]
lea eax, [eax + 1]
sbb ebx, 0
mov edi, ebx
sar edi, 0x1f
cmp dword [esi + 0xac], eax
mov ecx, edi
jne 0x497e80
cmp edx, 1
mov edi, dword [ebp + 0xc]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x14]
sbb ebx, 0
mov ebx, dword [esi + 4]
jb 0x497f31
mov eax, dword [esi + 0xac]
mov edx, dword [esi + 0xb0]
shl edi, 3
lea eax, [eax*8]
shl edx, 3
sub edi, eax
sub edi, edx
nop dword [eax + eax]
test edi, edi
je 0x497f65
add dword [ecx], 0xffffffff
lea eax, [ecx + 8]
mov edx, 0
adc dword [ecx + 4], 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
adc edx, 0xffffffff
add edi, 0xfffffff8
neg ecx
mov ecx, 0
sbb ecx, edx
mov edx, dword [esi + 8]
mov ecx, eax
jb 0x497f00
mov ecx, dword [esi + 0xac]
shl edx, 3
lea eax, [ebx + ecx*8]
shl ecx, 3
sub edx, ecx
nop word cs:[eax + eax]
nop dword [eax]
test edx, edx
je 0x497d2b
mov ecx, dword [eax]
add edx, 0xfffffff8
or ecx, dword [eax + 4]
lea eax, [eax + 8]
je 0x497f50
mov dword [esi + 0x28], 0x5fc868
mov dword [esi + 0x2c], 1
mov dword [esi + 0x38], 0
mov dword [esi + 0x30], str.C:Userscompile_bamboo.cargo_registry_srcindex.crates.io_6f17d22bba15001f_num_bigint_dig_0.8.4_src_algorithms_sub.rsCannot_subtract_b_from_a_because_b_is_larger_than_a.
mov dword [esi + 0x34], 0
mov dword [esi + 0x5d0], 0x2a
push 0x5fc870
lea eax, [esi + 0x28]
push eax
call fcn.005b1670
add esp, 8
jmp 0x49991e
lea eax, [esi + 0x148]
mov edx, dword [esi + 0x50]
mov dword [esi + 0x20], eax
mov dword [esi + 0x14], edi
cmp edx, 4
jbe 0x497fce
mov edx, dword [esi + 0x2c]
mov eax, dword [esi + 0x30]
cmp ebx, edx
mov dword [esi + 0x24], eax
jb 0x497fdc
jmp 0x49807d
lea eax, [esi + 0x30]
cmp ebx, edx
mov dword [esi + 0x24], eax
jae 0x49807d
movsd xmm1, qword [esi + 0x1b8]
movsd xmm2, qword [esi + 0x1b0]
movsd xmm0, qword [esi + 0x1c0]
lea eax, [esi + 0x140]
mov byte [esi + 0x1e], 0
mov dword [esi + 0x5d0], 0x1c
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x1a8]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x198]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x1a0]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push eax
lea eax, [esi + 0x68]
push eax
lea eax, [esi + 0x100]
push eax
call fcn.0048aa50
add esp, 0xc
mov al, 2
mov byte [esi + 0x1e], 0
lea ecx, [esi + 0x68]
sub al, byte [esi]
movzx edx, al
lea eax, [esi + 0x100]
push eax
call fcn.00494cc0
add esp, 4
jmp 0x49811b
jbe 0x49925c
movsd xmm1, qword [esi + 0x1b8]
movsd xmm2, qword [esi + 0x1b0]
movsd xmm0, qword [esi + 0x1c0]
lea eax, [esi + 0x68]
mov byte [esi + 0x1e], 0
mov dword [esi + 0x5d0], 0x1c
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x1a8]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x198]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x1a0]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push eax
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x100]
push eax
call fcn.0048acc0
add esp, 0xc
mov edx, dword [esi + 0x14]
lea eax, [esi + 0x100]
mov byte [esi + 0x1e], 0
lea ecx, [esi + 0x68]
push eax
call fcn.00494cc0
add esp, 4
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
movq xmm0, qword [esi + 0x90]
movzx eax, byte [esi + 0x98]
movsd qword [esi + 0x120], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x118], xmm2
movq xmm2, qword [esi + 0x68]
movq qword [esi + 0x128], xmm0
mov byte [esi + 8], al
movsd qword [esi + 0x110], xmm1
movq xmm1, qword [esi + 0x70]
movq qword [esi + 0x100], xmm2
movq qword [esi + 0x108], xmm1
cmp dword [esi + 0x128], 4
jbe 0x49819c
mov edi, dword [esi + 0x108]
lea eax, [esi + 0x104]
mov eax, dword [eax]
test eax, eax
jne 0x4981b2
jmp 0x4982a2
lea eax, [esi + 0x128]
lea edi, [esi + 0x108]
mov eax, dword [eax]
test eax, eax
je 0x4982a2
lea ecx, [eax - 1]
lea ebx, [edi + eax*8]
and ecx, 0x1fffffff
je 0x498277
inc ecx
movdqa xmm0, xmmword [0x5fc8f0]
lea eax, [edi + eax*8 - 0x10]
pxor xmm1, xmm1
mov dword [esi + 0x14], edi
mov edx, ecx
mov dword [esi + 0x24], ecx
and edx, 0xfffffffe
lea ecx, [edx*8]
mov dword [esi + 0x64], edx
sub ebx, ecx
mov dword [esi + 0x20], ebx
nop
movdqu xmm2, xmmword [eax]
mov dword [esi + 4], edx
mov edx, dword [eax]
pshufd xmm3, xmm1, 0xee
pshufd xmm1, xmm2, 0x4e
pshufd xmm4, xmm2, 0xff
pshufd xmm2, xmm2, 0x55
movd ecx, xmm2
movd edi, xmm4
movd ebx, xmm1
pand xmm1, xmm0
shrd edx, ecx, 1
shrd ecx, ebx, 1
shrd ebx, edi, 1
mov dword [esi], edx
movd edx, xmm3
movd xmm3, ebx
movd xmm4, ecx
movd xmm5, dword [esi]
shld edx, edi, 0x1f
movd xmm2, edx
mov edx, dword [esi + 4]
punpckldq xmm3, xmm2
punpckldq xmm5, xmm4
punpcklqdq xmm5, xmm3
movdqu xmmword [eax], xmm5
add eax, 0xfffffff0
add edx, 0xfffffffe
jne 0x4981f0
mov eax, dword [esi + 0x64]
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x20]
cmp dword [esi + 0x24], eax
je 0x4982a2
pshufd xmm0, xmm1, 0xee
movd eax, xmm0
jmp 0x498280
xor eax, eax
nop dword [eax]
mov edx, dword [ebx - 4]
mov ecx, dword [ebx - 8]
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
and ecx, 1
mov dword [ebx - 8], edx
lea edx, [ebx - 8]
mov dword [ebx - 4], eax
mov eax, ecx
cmp edx, edi
mov ebx, edx
jne 0x498280
movsd xmm3, qword [esi + 0x128]
movsd xmm2, qword [esi + 0x120]
movsd xmm0, qword [esi + 0x100]
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x50], xmm3
movsd qword [esi + 0x48], xmm2
movq xmm3, qword [esi + 0x118]
movsd xmm2, qword [esi + 0x110]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm0
movq qword [esi + 0x40], xmm3
movsd qword [esi + 0x38], xmm2
mov edi, dword [esi + 0x30]
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + 0x50]
lea ecx, [esi + 0x30]
cmp eax, 5
mov ebx, eax
jb 0x498312
mov ebx, dword [esi + 0x2c]
mov ecx, edi
test ebx, ebx
je 0x498337
mov edx, dword [ecx + ebx*8 - 8]
or edx, dword [ecx + ebx*8 - 4]
jne 0x498337
cmp eax, 5
lea ecx, [esi + 0x50]
jb 0x49832e
mov eax, dword [esi + 0x2c]
lea ecx, [esi + 0x2c]
test eax, eax
je 0x498300
dec eax
mov dword [ecx], eax
jmp 0x498300
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
movzx edx, byte [esi + 8]
lea eax, [esi + 0x208]
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 1
mov dword [esi + 0x5d0], 0x11
lea ecx, [esi + 0x100]
movsd qword [esi + 0x228], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x220], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x230], xmm0
movsd qword [esi + 0x218], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x208], xmm2
movsd qword [esi + 0x210], xmm1
push eax
call fcn.00494cc0
add esp, 4
mov ecx, dword [esi + 0x3f0]
cmp ecx, 4
jbe 0x4983d1
mov ecx, dword [esi + 0x3cc]
mov eax, dword [esi + 0x3d0]
jmp 0x4983d7
lea eax, [esi + 0x3d0]
movzx edx, byte [esi + 0x3f8]
lea ecx, [eax + ecx*8]
mov dword [esi + 0x90], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x5d0], 0x18
mov byte [esi + 0x14], dl
push ecx
push eax
lea eax, [esi + 0x68]
push eax
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x68]
movsd qword [esi + 0x50], xmm0
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
mov ecx, dword [esi + 0x50]
cmp ecx, 4
jbe 0x498469
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
test ecx, ecx
jne 0x498474
jmp 0x498545
lea edx, [esi + 0x30]
test ecx, ecx
je 0x498545
shl ecx, 3
xor edi, edi
xor ebx, ebx
mov dword [esi + 8], 0
nop word cs:[eax + eax]
nop dword [eax]
mov dword [esi], edi
mov dword [esi + 4], ebx
mov ebx, dword [edx + 4]
mov edi, dword [edx]
mov eax, ebx
shld ebx, edi, 1
add edi, edi
shr eax, 0x1f
add edi, dword [esi]
adc ebx, dword [esi + 4]
mov dword [edx], edi
mov edi, eax
mov dword [edx + 4], ebx
mov ebx, dword [esi + 8]
lea edx, [edx + 8]
adc edi, ebx
adc ebx, 0
add ecx, 0xfffffff8
jne 0x498490
mov eax, edi
or eax, ebx
je 0x498545
mov edx, dword [esi + 0x50]
mov dword [esi], edi
cmp edx, 5
jb 0x4984da
mov ecx, dword [esi + 0x2c]
cmp ecx, edx
je 0x4984df
jmp 0x498520
cmp edx, 4
jne 0x498528
inc edx
mov dword [esi + 4], ebx
je 0x4998dc
dec edx
mov dword [esi + 0x5d0], 0x17
bsr ecx, edx
mov edx, 0xffffffff
not ecx
shr edx, cl
inc edx
je 0x4998dc
lea ecx, [esi + 0x28]
call fcn.00491210
mov ebx, dword [esi + 4]
cmp eax, 0x80000001
jne 0x4998d8
mov ecx, dword [esi + 0x2c]
lea edx, [esi + 0x2c]
mov edi, dword [esi + 0x30]
jmp 0x498530
mov ecx, edx
lea edi, [esi + 0x30]
lea edx, [esi + 0x50]
mov eax, dword [esi]
mov dword [edi + ecx*8 + 4], ebx
mov dword [edi + ecx*8], eax
inc dword [edx]
mov dword [esi + 0x5d0], 0x16
movsd xmm1, qword [esi + 0x48]
movsd xmm2, qword [esi + 0x40]
movsd xmm0, qword [esi + 0x50]
movzx edx, byte [esi + 0x14]
lea eax, [esi + 0x68]
mov byte [esi + 0xcb], 1
mov dword [esi + 0x5d0], 0x16
lea ecx, [esi + 0x28]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x28]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push eax
call fcn.00494cc0
add esp, 4
lea eax, [esi + 0x28]
mov byte [esi + 0xcb], 0
lea ecx, [esi + 0x68]
lea edx, [esi + 0x100]
push eax
call fcn.004930c0
add esp, 4
movsd xmm1, qword [esi + 0x70]
movsd xmm2, qword [esi + 0x78]
movzx eax, byte [esi + 0x200]
movsd xmm0, qword [esi + 0x68]
movsd qword [esi + 0x1a0], xmm1
movsd xmm1, qword [esi + 0x80]
movsd qword [esi + 0x1a8], xmm2
movsd xmm2, qword [esi + 0x88]
cmp al, 1
movsd qword [esi + 0x198], xmm0
movsd qword [esi + 0x1b0], xmm1
movsd xmm1, qword [esi + 0x90]
movsd qword [esi + 0x1b8], xmm2
movsd xmm2, qword [esi + 0x98]
movsd qword [esi + 0x1c0], xmm1
movsd xmm1, qword [esi + 0x170]
movsd qword [esi + 0x1c8], xmm2
movsd xmm2, qword [esi + 0x168]
movsd qword [esi + 0x58], xmm1
movsd xmm1, qword [esi + 0x160]
movsd qword [esi + 0x50], xmm2
movsd xmm2, qword [esi + 0x158]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x150]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x140]
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x148]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
jne 0x498703
movsd xmm2, qword [esi + 0x168]
movsd xmm1, qword [esi + 0x160]
movsd xmm0, qword [esi + 0x170]
movsd qword [esi + 0x90], xmm2
movsd qword [esi + 0x88], xmm1
movsd xmm2, qword [esi + 0x158]
movsd xmm1, qword [esi + 0x150]
movsd qword [esi + 0x98], xmm0
movsd qword [esi + 0x80], xmm2
movsd qword [esi + 0x78], xmm1
movsd xmm2, qword [esi + 0x140]
movsd xmm1, qword [esi + 0x148]
movsd qword [esi + 0x70], xmm1
movsd qword [esi + 0x68], xmm2
jmp 0x498a35
movzx ecx, byte [esi + 0x58]
test ecx, ecx
je 0x498739
cmp ecx, 1
lea edx, [esi + 0x100]
jne 0x49875a
mov ecx, dword [esi + 0x1f8]
mov byte [esi + 8], al
cmp ecx, 4
jbe 0x4987f9
mov ecx, dword [esi + 0x1d4]
mov eax, dword [esi + 0x1d8]
jmp 0x4987ff
test al, al
lea edx, [esi + 0x100]
je 0x49875e
mov ebx, dword [esi + 0x50]
cmp ebx, 4
jbe 0x4988b8
mov ebx, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
jmp 0x4988bb
test al, al
je 0x498743
movsd xmm1, qword [esi + 0x160]
movsd xmm2, qword [esi + 0x158]
movsd xmm0, qword [esi + 0x168]
lea eax, [esi + 0x1d0]
mov dword [esi + 0x14], ecx
mov byte [esi + 0x1f], 0
mov dword [esi + 0x5d0], 0x19
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x150]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x140]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x148]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push eax
lea eax, [esi + 0x68]
push eax
push edx
call fcn.0048a520
add esp, 0xc
movzx edx, byte [esi + 0x14]
lea eax, [esi + 0x100]
mov byte [esi + 0x1f], 0
lea ecx, [esi + 0x68]
push eax
call fcn.00494cc0
add esp, 4
jmp 0x498a35
lea eax, [esi + 0x1d8]
lea ecx, [eax + ecx*8]
mov dword [esi + 0x128], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0x5d0], 0x1b
push ecx
push eax
push edx
call fcn.00490c00
add esp, 0xc
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x118]
movsd xmm0, qword [esi + 0x128]
movzx eax, byte [esi + 8]
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x110]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x100]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
mov byte [esi + 0x98], al
mov eax, dword [esi + 0x50]
cmp eax, 5
jb 0x498a35
shl eax, 3
push 8
push eax
push dword [esi + 0x30]
call fcn.00452e30
add esp, 0xc
mov dword [esi + 0x5d0], 0x11
jmp 0x498a35
lea edx, [esi + 0x30]
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x1f8]
mov byte [esi + 8], al
mov dword [esi + 0x14], ecx
cmp edx, 4
jbe 0x4988e7
mov edx, dword [esi + 0x1d4]
mov eax, dword [esi + 0x1d8]
cmp ebx, edx
mov dword [esi + 0x24], eax
jb 0x4988f8
jmp 0x498996
lea eax, [esi + 0x1d8]
cmp ebx, edx
mov dword [esi + 0x24], eax
jae 0x498996
movsd xmm1, qword [esi + 0x160]
movsd xmm2, qword [esi + 0x158]
movsd xmm0, qword [esi + 0x168]
lea eax, [esi + 0x68]
mov byte [esi + 0x1f], 0
mov dword [esi + 0x5d0], 0x19
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x150]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x140]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x148]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push eax
lea eax, [esi + 0x1d0]
push eax
lea eax, [esi + 0x100]
push eax
call fcn.0048acc0
add esp, 0xc
movzx edx, byte [esi + 8]
lea eax, [esi + 0x100]
mov byte [esi + 0x1f], 0
lea ecx, [esi + 0x68]
push eax
call fcn.00494cc0
add esp, 4
jmp 0x498a35
jbe 0x4992b0
movsd xmm1, qword [esi + 0x160]
movsd xmm2, qword [esi + 0x158]
movsd xmm0, qword [esi + 0x168]
lea eax, [esi + 0x1d0]
mov byte [esi + 0x1f], 0
mov dword [esi + 0x5d0], 0x19
movsd qword [esi + 0x88], xmm1
movsd xmm1, qword [esi + 0x150]
movsd qword [esi + 0x80], xmm2
movsd xmm2, qword [esi + 0x140]
movsd qword [esi + 0x90], xmm0
movsd qword [esi + 0x78], xmm1
movsd xmm1, qword [esi + 0x148]
movsd qword [esi + 0x68], xmm2
movsd qword [esi + 0x70], xmm1
push eax
lea eax, [esi + 0x68]
push eax
lea eax, [esi + 0x100]
push eax
call fcn.0048aa50
add esp, 0xc
movzx edx, byte [esi + 0x14]
lea eax, [esi + 0x100]
mov byte [esi + 0x1f], 0
lea ecx, [esi + 0x68]
push eax
call fcn.00494cc0
add esp, 4
lea eax, [esi + 0x3c8]
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 1
mov byte [esi + 0xf], 1
mov dword [esi + 0x5d0], 0x11
lea ecx, [esi + 0x28]
lea edx, [esi + 0x68]
push eax
call fcn.00493ef0
add esp, 4
movsd xmm1, qword [esi + 0x30]
movsd xmm2, qword [esi + 0x38]
movsd xmm0, qword [esi + 0x28]
lea eax, [esi + 0x198]
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 1
mov byte [esi + 0xf], 1
lea ecx, [esi + 0x68]
lea edx, [esi + 0x28]
movsd qword [esi + 0x148], xmm1
movsd xmm1, qword [esi + 0x40]
movsd qword [esi + 0x150], xmm2
movsd xmm2, qword [esi + 0x48]
movsd qword [esi + 0x140], xmm0
movsd qword [esi + 0x158], xmm1
movsd xmm1, qword [esi + 0x50]
movsd qword [esi + 0x160], xmm2
movsd xmm2, qword [esi + 0x58]
movsd qword [esi + 0x168], xmm1
movsd xmm1, qword [esi + 0x200]
movsd qword [esi + 0x170], xmm2
movsd xmm2, qword [esi + 0x1f8]
movsd qword [esi + 0x58], xmm1
movsd xmm1, qword [esi + 0x1f0]
movsd qword [esi + 0x50], xmm2
movsd xmm2, qword [esi + 0x1e8]
movsd qword [esi + 0x48], xmm1
movsd xmm1, qword [esi + 0x1e0]
movsd qword [esi + 0x40], xmm2
movsd xmm2, qword [esi + 0x1d0]
movsd qword [esi + 0x38], xmm1
movsd xmm1, qword [esi + 0x1d8]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x30], xmm1
push eax
call fcn.00493ef0
add esp, 4
movsd xmm1, qword [esi + 0x70]
movsd xmm2, qword [esi + 0x80]
mov ecx, dword [esi + 0x578]
movsd xmm0, qword [esi + 0x68]
movsd qword [esi + 0x1d8], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x1e8], xmm2
movsd xmm2, qword [esi + 0x90]
cmp ecx, 4
movsd qword [esi + 0x1d0], xmm0
movsd qword [esi + 0x1e0], xmm1
movsd xmm1, qword [esi + 0x88]
movsd qword [esi + 0x1f8], xmm2
movsd qword [esi + 0x1f0], xmm1
movsd xmm1, qword [esi + 0x98]
movsd qword [esi + 0x200], xmm1
jbe 0x498bbf
mov ecx, dword [esi + 0x554]
mov edx, dword [esi + 0x558]
jmp 0x498bc5
lea edx, [esi + 0x558]
mov eax, dword [ebp + 0xc]
cmp ecx, eax
ja 0x4997db
test ecx, ecx
je 0x498c73
mov eax, dword [ebp + 8]
mov dword [esi + 0x14], edx
xor edx, edx
xor ebx, ebx
xor edi, edi
mov dword [esi + 8], ecx
mov dword [esi], 0
lea eax, [eax + ecx*8]
xor ecx, ecx
mov dword [esi + 0x20], eax
nop word cs:[eax + eax]
nop
mov eax, dword [ebp + 8]
add edx, dword [eax + ecx*8]
adc ebx, dword [eax + ecx*8 + 4]
mov eax, dword [esi]
adc eax, 0
mov dword [esi + 4], eax
mov eax, dword [esi + 0x14]
adc edi, 0
add edx, dword [eax + ecx*8]
adc ebx, dword [eax + ecx*8 + 4]
mov eax, dword [ebp + 8]
mov dword [eax + ecx*8], edx
mov edx, dword [esi + 4]
mov dword [eax + ecx*8 + 4], ebx
mov ebx, edi
lea ecx, [ecx + 1]
mov edi, dword [esi]
adc edx, 0
adc ebx, 0
cmp dword [esi + 8], ecx
jne 0x498c00
cmp edx, 1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x20]
sbb ebx, 0
jb 0x498c73
mov eax, dword [ebp + 0xc]
shl ecx, 3
lea eax, [eax*8]
sub eax, ecx
nop dword [eax + eax]
test eax, eax
je 0x498c73
add eax, 0xfffffff8
add dword [edx], 1
adc dword [edx + 4], 0
lea edx, [edx + 8]
jb 0x498c60
movsd xmm2, qword [esi + 0x1f8]
movsd xmm1, qword [esi + 0x1f0]
mov eax, dword [esi + 0x190]
movsd xmm0, qword [esi + 0x200]
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 1
mov byte [esi + 0xf], 1
mov dword [esi + 0x5d0], 0x11
lea ecx, [esi + 0x68]
lea edx, [esi + 0x28]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x1e8]
movsd xmm1, qword [esi + 0x1e0]
shl eax, 6
movsd qword [esi + 0x58], xmm0
mov dword [esi + 0x20], eax
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x1d0]
movsd xmm1, qword [esi + 0x1d8]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00492120
add esp, 4
mov edx, dword [esi + 0x90]
cmp edx, 4
jbe 0x498d16
mov ecx, dword [esi + 0x6c]
mov edi, dword [esi + 0x70]
jmp 0x498d1b
lea edi, [esi + 0x70]
mov ecx, edx
mov eax, dword [ebp + 0xc]
cmp ecx, eax
ja 0x499804
test ecx, ecx
je 0x498dc3
mov eax, dword [ebp + 8]
mov dword [esi + 0x24], edx
mov dword [esi + 0x14], edi
xor edi, edi
xor ebx, ebx
xor edx, edx
mov dword [esi], 0
mov dword [esi + 8], ecx
lea eax, [eax + ecx*8]
mov dword [esi + 0x64], eax
xor eax, eax
nop
mov ecx, dword [ebp + 8]
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [esi]
adc ecx, 0
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x14]
adc eax, 0
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*8], edi
mov edi, dword [esi + 4]
mov dword [ecx + edx*8 + 4], ebx
mov ecx, dword [esi + 8]
mov ebx, eax
mov eax, dword [esi]
lea edx, [edx + 1]
adc edi, 0
adc ebx, 0
cmp ecx, edx
jne 0x498d50
cmp edi, 1
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x64]
sbb ebx, 0
jb 0x498dc3
lea eax, [eax*8]
shl ecx, 3
sub eax, ecx
nop dword [eax]
test eax, eax
je 0x498dc3
add eax, 0xfffffff8
add dword [edi], 1
adc dword [edi + 4], 0
lea edi, [edi + 8]
jb 0x498db0
cmp edx, 5
jb 0x498de3
shl edx, 3
push 8
push edx
push dword [esi + 0x70]
call fcn.00452e30
add esp, 0xc
mov dword [esi + 0x5d0], 0x11
movsd xmm2, qword [esi + 0x168]
movsd xmm1, qword [esi + 0x160]
mov eax, dword [esi + 0x190]
movsd xmm0, qword [esi + 0x170]
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 1
mov byte [esi + 0xf], 1
mov dword [esi + 0x5d0], 0x11
lea ecx, [esi + 0x68]
lea edx, [esi + 0x28]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x158]
movsd xmm1, qword [esi + 0x150]
shl eax, 7
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x140]
movsd xmm1, qword [esi + 0x148]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00492120
add esp, 4
mov edx, dword [esi + 0x90]
cmp edx, 4
jbe 0x498e83
mov ecx, dword [esi + 0x6c]
mov edi, dword [esi + 0x70]
jmp 0x498e88
lea edi, [esi + 0x70]
mov ecx, edx
mov eax, dword [ebp + 0xc]
cmp ecx, eax
ja 0x499827
test ecx, ecx
je 0x498f33
mov eax, dword [ebp + 8]
mov dword [esi + 0x24], edx
mov dword [esi + 0x14], edi
xor edi, edi
xor ebx, ebx
xor edx, edx
mov dword [esi], 0
mov dword [esi + 8], ecx
lea eax, [eax + ecx*8]
mov dword [esi + 0x64], eax
xor eax, eax
nop dword [eax + eax]
mov ecx, dword [ebp + 8]
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [esi]
adc ecx, 0
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x14]
adc eax, 0
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*8], edi
mov edi, dword [esi + 4]
mov dword [ecx + edx*8 + 4], ebx
mov ecx, dword [esi + 8]
mov ebx, eax
mov eax, dword [esi]
lea edx, [edx + 1]
adc edi, 0
adc ebx, 0
cmp ecx, edx
jne 0x498ec0
cmp edi, 1
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x64]
sbb ebx, 0
jb 0x498f33
lea eax, [eax*8]
shl ecx, 3
sub eax, ecx
nop dword [eax]
test eax, eax
je 0x498f33
add eax, 0xfffffff8
add dword [edi], 1
adc dword [edi + 4], 0
lea edi, [edi + 8]
jb 0x498f20
cmp edx, 5
jb 0x498f53
shl edx, 3
push 8
push edx
push dword [esi + 0x70]
call fcn.00452e30
add esp, 0xc
mov dword [esi + 0x5d0], 0x11
movsd xmm2, qword [esi + 0x1c0]
movsd xmm1, qword [esi + 0x1b8]
mov eax, dword [esi + 0x20]
movsd xmm0, qword [esi + 0x1c8]
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 1
mov dword [esi + 0x5d0], 0x11
lea ecx, [esi + 0x68]
lea edx, [esi + 0x28]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x1b0]
movsd xmm1, qword [esi + 0x1a8]
lea eax, [eax + eax*2]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x198]
movsd xmm1, qword [esi + 0x1a0]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00492120
add esp, 4
mov edx, dword [esi + 0x90]
cmp edx, 4
jbe 0x498ff0
mov ecx, dword [esi + 0x6c]
mov edi, dword [esi + 0x70]
jmp 0x498ff5
lea edi, [esi + 0x70]
mov ecx, edx
mov eax, dword [ebp + 0xc]
cmp ecx, eax
ja 0x49984a
test ecx, ecx
je 0x4990a3
mov eax, dword [ebp + 8]
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], edi
xor edi, edi
xor ebx, ebx
xor edx, edx
mov dword [esi], 0
mov dword [esi + 8], ecx
lea eax, [eax + ecx*8]
mov dword [esi + 0x24], eax
xor eax, eax
nop dword [eax + eax]
mov ecx, dword [ebp + 8]
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [esi]
adc ecx, 0
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x14]
adc eax, 0
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*8], edi
mov edi, dword [esi + 4]
mov dword [ecx + edx*8 + 4], ebx
mov ecx, dword [esi + 8]
mov ebx, eax
mov eax, dword [esi]
lea edx, [edx + 1]
adc edi, 0
adc ebx, 0
cmp ecx, edx
jne 0x499030
cmp edi, 1
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 0x20]
mov edi, dword [esi + 0x24]
sbb ebx, 0
jb 0x4990a3
lea eax, [eax*8]
shl ecx, 3
sub eax, ecx
nop dword [eax]
test eax, eax
je 0x4990a3
add eax, 0xfffffff8
add dword [edi], 1
adc dword [edi + 4], 0
lea edi, [edi + 8]
jb 0x499090
cmp edx, 5
jb 0x4990c3
shl edx, 3
push 8
push edx
push dword [esi + 0x70]
call fcn.00452e30
add esp, 0xc
mov dword [esi + 0x5d0], 0x11
movsd xmm2, qword [esi + 0x3f0]
movsd xmm1, qword [esi + 0x3e8]
mov eax, dword [esi + 0x190]
movsd xmm0, qword [esi + 0x3f8]
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 0
mov dword [esi + 0x5d0], 0x11
lea ecx, [esi + 0x68]
lea edx, [esi + 0x28]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x48], xmm1
movsd xmm2, qword [esi + 0x3e0]
movsd xmm1, qword [esi + 0x3d8]
shl eax, 8
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
movsd qword [esi + 0x38], xmm1
movsd xmm2, qword [esi + 0x3c8]
movsd xmm1, qword [esi + 0x3d0]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm2
push eax
call fcn.00492120
add esp, 4
mov edx, dword [esi + 0x90]
cmp edx, 4
jbe 0x499163
mov ecx, dword [esi + 0x6c]
mov edi, dword [esi + 0x70]
jmp 0x499168
lea edi, [esi + 0x70]
mov ecx, edx
mov eax, dword [ebp + 0xc]
cmp ecx, eax
ja 0x49986d
test ecx, ecx
je 0x499213
mov eax, dword [ebp + 8]
mov dword [esi + 0x14], edx
mov dword [esi + 8], edi
xor edi, edi
xor ebx, ebx
xor edx, edx
mov dword [esi + 0x10], 0
mov dword [esi + 4], ecx
lea eax, [eax + ecx*8]
mov dword [esi + 0x20], eax
xor eax, eax
nop dword [eax]
mov ecx, dword [ebp + 8]
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [esi + 0x10]
adc ecx, 0
mov dword [esi], ecx
mov ecx, dword [esi + 8]
adc eax, 0
add edi, dword [ecx + edx*8]
adc ebx, dword [ecx + edx*8 + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*8], edi
mov edi, dword [esi]
mov dword [ecx + edx*8 + 4], ebx
mov ebx, eax
lea edx, [edx + 1]
mov eax, dword [esi + 0x10]
adc edi, 0
adc ebx, 0
cmp dword [esi + 4], edx
jne 0x4991a0
cmp edi, 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x20]
sbb ebx, 0
jb 0x499213
shl ecx, 3
shl eax, 3
sub ecx, eax
nop word [eax + eax]
test ecx, ecx
je 0x499213
add ecx, 0xfffffff8
add dword [edi], 1
adc dword [edi + 4], 0
lea edi, [edi + 8]
jb 0x499200
cmp edx, 5
jb 0x499229
shl edx, 3
push 8
push edx
push dword [esi + 0x70]
call fcn.00452e30
add esp, 0xc
mov eax, dword [esi + 0x578]
cmp eax, 5
jb 0x499248
shl eax, 3
push 8
push eax
push dword [esi + 0x558]
call fcn.00452e30
add esp, 0xc
mov eax, dword [esi + 0x5c8]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
shl ebx, 3
shl edx, 3
test ebx, ebx
je 0x499301
test edx, edx
je 0x499301
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x24]
mov dword [esi + 8], ebx
mov ecx, dword [eax + ebx - 8]
mov eax, dword [eax + ebx - 4]
mov dword [esi + 4], eax
mov eax, dword [edi + edx - 8]
mov edi, dword [edi + edx - 4]
mov ebx, dword [esi + 4]
cmp ecx, eax
sbb ebx, edi
mov ebx, dword [esi + 8]
jb 0x497fdc
add ebx, 0xfffffff8
add edx, 0xfffffff8
cmp eax, ecx
sbb edi, dword [esi + 4]
jae 0x499262
jmp 0x498083
shl ebx, 3
shl edx, 3
test ebx, ebx
je 0x49947d
test edx, edx
je 0x49947d
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x24]
mov dword [esi + 4], ebx
mov ecx, dword [eax + ebx - 8]
mov eax, dword [eax + ebx - 4]
mov dword [esi], eax
mov eax, dword [edi + edx - 8]
mov edi, dword [edi + edx - 4]
mov ebx, dword [esi]
cmp ecx, eax
sbb ebx, edi
mov ebx, dword [esi + 4]
jb 0x4988f8
add ebx, 0xfffffff8
add edx, 0xfffffff8
cmp eax, ecx
sbb edi, dword [esi]
jae 0x4992b6
jmp 0x49899c
lea eax, [esi + 0x100]
mov dword [esi + 0x90], 0
mov dword [esi + 0x100], 4
mov dword [esi + 0x104], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x108], 2
mov dword [esi + 0x5d0], 0x1e
push eax
lea eax, [esi + 0x68]
push eax
call fcn.00490730
add esp, 8
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x120], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x118], xmm2
movsd xmm2, qword [esi + 0x68]
movsd qword [esi + 0x128], xmm0
movsd qword [esi + 0x110], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0x100], xmm2
movsd qword [esi + 0x108], xmm1
mov edi, dword [esi + 0x108]
mov eax, dword [esi + 0x128]
lea ecx, [esi + 0x108]
cmp eax, 5
mov ebx, eax
jb 0x4993c5
mov ebx, dword [esi + 0x104]
mov ecx, edi
test ebx, ebx
je 0x4993f3
mov edx, dword [ecx + ebx*8 - 8]
or edx, dword [ecx + ebx*8 - 4]
jne 0x4993f3
cmp eax, 5
lea ecx, [esi + 0x128]
jb 0x4993ea
mov eax, dword [esi + 0x104]
lea ecx, [esi + 0x104]
test eax, eax
je 0x4993aa
dec eax
mov dword [ecx], eax
jmp 0x4993aa
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x118]
movsd xmm0, qword [esi + 0x128]
lea eax, [esi + 0x208]
mov byte [esi + 0x1e], 1
mov dword [esi + 0x5d0], 0x1c
lea ecx, [esi + 0x68]
mov edx, 1
movsd qword [esi + 0x228], xmm1
movsd xmm1, qword [esi + 0x110]
movsd qword [esi + 0x220], xmm2
movsd xmm2, qword [esi + 0x100]
movsd qword [esi + 0x230], xmm0
movsd qword [esi + 0x218], xmm1
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x208], xmm2
movsd qword [esi + 0x210], xmm1
push eax
call fcn.00494cc0
add esp, 4
jmp 0x497c05
lea eax, [esi + 0x100]
mov dword [esi + 0x90], 0
mov dword [esi + 0x100], 4
mov dword [esi + 0x104], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x108], 2
mov dword [esi + 0x5d0], 0x1a
push eax
lea eax, [esi + 0x68]
push eax
call fcn.00490730
add esp, 8
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x120], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x118], xmm2
movsd xmm2, qword [esi + 0x68]
movsd qword [esi + 0x128], xmm0
movsd qword [esi + 0x110], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0x100], xmm2
movsd qword [esi + 0x108], xmm1
mov edi, dword [esi + 0x108]
mov eax, dword [esi + 0x128]
lea ecx, [esi + 0x108]
cmp eax, 5
mov ebx, eax
jb 0x499541
mov ebx, dword [esi + 0x104]
mov ecx, edi
test ebx, ebx
je 0x49956f
mov edx, dword [ecx + ebx*8 - 8]
or edx, dword [ecx + ebx*8 - 4]
jne 0x49956f
cmp eax, 5
lea ecx, [esi + 0x128]
jb 0x499566
mov eax, dword [esi + 0x104]
lea ecx, [esi + 0x104]
test eax, eax
je 0x499526
dec eax
mov dword [ecx], eax
jmp 0x499526
movsd xmm1, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x118]
movsd xmm0, qword [esi + 0x128]
lea eax, [esi + 0x208]
mov byte [esi + 0x1f], 1
mov dword [esi + 0x5d0], 0x19
lea ecx, [esi + 0x68]
mov edx, 1
movsd qword [esi + 0x228], xmm1
movsd xmm1, qword [esi + 0x110]
movsd qword [esi + 0x220], xmm2
movsd xmm2, qword [esi + 0x100]
movsd qword [esi + 0x230], xmm0
movsd qword [esi + 0x218], xmm1
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x208], xmm2
movsd qword [esi + 0x210], xmm1
push eax
call fcn.00494cc0
add esp, 4
jmp 0x49888c
mov dword [esi + 0x5d0], 0xffffffff
push 0x5fca50
push 0x25
push str.carry_overflow_during_multiplication_C:Userscompile_bamboo.cargo_registry_srcindex.crates.io_6f17d22bba15001f_num_bigint_dig_0.8.4_src_algorithmsmac.rs
call fcn.005b1610
add esp, 0xc
ud2
mov dword [esi + 0x5d0], 0xffffffff
push 0x5fca60
push dword [ebp + 0xc]
push dword [esi + 0x138]
call fcn.005b1ab0
add esp, 0xc
ud2
mov dword [esi + 0x5d0], 0xffffffff
push 0x5fca40
push 0x23
push str.assertion_failed:_mid___self.len__C:Userscompile_bamboo.cargo_registry_srcindex.crates.io_6f17d22bba15001f_num_bigint_dig_0.8.4_src_biguint.rs
call fcn.005b1730
add esp, 0xc
ud2
push 0x5fca70
jmp 0x49964a
mov byte [esi + 0xb4], 1
mov dword [esi + 0x5d0], 1
push 0x5fcaa0
push dword [esi + 0xd0]
push dword [esi + 4]
call fcn.005b1b20
add esp, 0xc
jmp 0x49991e
call fcn.00538200
ud2
mov dword [esi + 0x5d0], 0x28
push 0x5fca80
push eax
push ecx
call fcn.005b1ab0
add esp, 0xc
jmp 0x49991e
mov byte [esi + 0xb5], 1
mov byte [esi + 0xb6], 1
mov byte [esi + 0xb7], 1
mov dword [esi + 0x5d0], 3
push 0x5fcab0
push dword [esi + 0xcc]
push dword [esi + 0x190]
call fcn.005b1b20
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x28
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x28
push 0x5fca90
push eax
push ecx
call fcn.005b1ab0
add esp, 0xc
jmp 0x49991e
mov byte [esi + 0xb8], 1
mov byte [esi + 0xb9], 1
mov byte [esi + 0xba], 1
mov byte [esi + 0xbb], 1
mov dword [esi + 0x5d0], 4
push 0x5fcac0
push dword [esi + 0xcc]
push dword [esi + 8]
call fcn.005b1b20
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x28
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x28
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x28
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 1
mov byte [esi + 0xf], 1
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x15
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x14
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x13
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
mov dword [esi + 0x5d0], 0x12
push 0x5fc7ac
push 0x23
push 0x5fc659
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
test eax, eax
jne 0x4998fc
mov dword [esi + 0x5d0], 0x21
push 0x5fc568
push 0x11
push str.capacity_overflow
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
test eax, eax
jne 0x499908
mov dword [esi + 0x5d0], 0x20
push 0x5fc568
push 0x11
push str.capacity_overflow
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
test eax, eax
jne 0x499914
mov dword [esi + 0x5d0], 0x17
push 0x5fc568
push 0x11
push str.capacity_overflow
call fcn.005b1730
add esp, 0xc
jmp 0x49991e
push edx
push eax
call fcn.005b14d0
add esp, 8
jmp 0x49991e
push edx
push eax
call fcn.005b14d0
add esp, 8
jmp 0x49991e
push edx
push eax
call fcn.005b14d0
add esp, 8
ud2