640ed8:	52                   	push   %edx
640ed9:	50                   	push   %eax
640eda:	8b 44 24 40          	mov    0x40(%esp),%eax
640ede:	8b 54 24 44          	mov    0x44(%esp),%edx
640ee2:	23 44 24 10          	and    0x10(%esp),%eax
640ee6:	23 54 24 14          	and    0x14(%esp),%edx
640eea:	33 04 24             	xor    (%esp),%eax
640eed:	33 54 24 04          	xor    0x4(%esp),%edx
640ef1:	83 c4 08             	add    $0x8,%esp
640ef4:	52                   	push   %edx
640ef5:	50                   	push   %eax
640ef6:	8b 44 24 48          	mov    0x48(%esp),%eax
640efa:	8b 54 24 4c          	mov    0x4c(%esp),%edx
640efe:	23 44 24 10          	and    0x10(%esp),%eax
640f02:	23 54 24 14          	and    0x14(%esp),%edx
640f06:	33 04 24             	xor    (%esp),%eax
640f09:	33 54 24 04          	xor    0x4(%esp),%edx
640f0d:	83 c4 08             	add    $0x8,%esp
640f10:	03 04 24             	add    (%esp),%eax
640f13:	13 54 24 04          	adc    0x4(%esp),%edx
640f17:	83 c4 08             	add    $0x8,%esp
640f1a:	89 44 24 48          	mov    %eax,0x48(%esp)
640f1e:	89 54 24 4c          	mov    %edx,0x4c(%esp)
640f22:	8b 44 24 08          	mov    0x8(%esp),%eax
640f26:	8b 54 24 0c          	mov    0xc(%esp),%edx
640f2a:	03 44 24 40          	add    0x40(%esp),%eax
640f2e:	13 54 24 44          	adc    0x44(%esp),%edx
640f32:	89 44 24 08          	mov    %eax,0x8(%esp)
640f36:	89 54 24 0c          	mov    %edx,0xc(%esp)
640f3a:	8b 44 24 40          	mov    0x40(%esp),%eax
640f3e:	8b 54 24 44          	mov    0x44(%esp),%edx
640f42:	03 44 24 48          	add    0x48(%esp),%eax
640f46:	13 54 24 4c          	adc    0x4c(%esp),%edx
640f4a:	89 44 24 28          	mov    %eax,0x28(%esp)
640f4e:	89 54 24 2c          	mov    %edx,0x2c(%esp)
640f52:	8b 44 24 08          	mov    0x8(%esp),%eax
640f56:	8b 54 24 0c          	mov    0xc(%esp),%edx
640f5a:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
640f5e:	c1 ea 0e             	shr    $0xe,%edx
640f61:	52                   	push   %edx
640f62:	50                   	push   %eax
640f63:	8b 54 24 10          	mov    0x10(%esp),%edx
640f67:	c1 e2 12             	shl    $0x12,%edx
640f6a:	33 c0                	xor    %eax,%eax
640f6c:	0b 04 24             	or     (%esp),%eax
640f6f:	0b 54 24 04          	or     0x4(%esp),%edx
640f73:	83 c4 08             	add    $0x8,%esp
640f76:	52                   	push   %edx
640f77:	50                   	push   %eax
640f78:	8b 44 24 10          	mov    0x10(%esp),%eax
640f7c:	8b 54 24 14          	mov    0x14(%esp),%edx
640f80:	0f ac d0 12          	shrd   $0x12,%edx,%eax
640f84:	c1 ea 12             	shr    $0x12,%edx
640f87:	52                   	push   %edx
640f88:	50                   	push   %eax
640f89:	8b 54 24 18          	mov    0x18(%esp),%edx
640f8d:	c1 e2 0e             	shl    $0xe,%edx
640f90:	33 c0                	xor    %eax,%eax
640f92:	0b 04 24             	or     (%esp),%eax
640f95:	0b 54 24 04          	or     0x4(%esp),%edx
640f99:	83 c4 08             	add    $0x8,%esp
640f9c:	33 04 24             	xor    (%esp),%eax
640f9f:	33 54 24 04          	xor    0x4(%esp),%edx
640fa3:	83 c4 08             	add    $0x8,%esp
640fa6:	52                   	push   %edx
640fa7:	50                   	push   %eax
640fa8:	8b 44 24 14          	mov    0x14(%esp),%eax
640fac:	c1 e8 09             	shr    $0x9,%eax
640faf:	33 d2                	xor    %edx,%edx
640fb1:	52                   	push   %edx
640fb2:	50                   	push   %eax
640fb3:	8b 44 24 18          	mov    0x18(%esp),%eax
640fb7:	8b 54 24 1c          	mov    0x1c(%esp),%edx
640fbb:	0f a4 c2 17          	shld   $0x17,%eax,%edx
640fbf:	c1 e0 17             	shl    $0x17,%eax
640fc2:	0b 04 24             	or     (%esp),%eax
640fc5:	0b 54 24 04          	or     0x4(%esp),%edx
640fc9:	83 c4 08             	add    $0x8,%esp
640fcc:	33 04 24             	xor    (%esp),%eax
640fcf:	33 54 24 04          	xor    0x4(%esp),%edx
640fd3:	83 c4 08             	add    $0x8,%esp
640fd6:	03 44 24 20          	add    0x20(%esp),%eax
640fda:	13 54 24 24          	adc    0x24(%esp),%edx
640fde:	52                   	push   %edx
640fdf:	50                   	push   %eax
640fe0:	8b 44 24 10          	mov    0x10(%esp),%eax
640fe4:	8b 54 24 14          	mov    0x14(%esp),%edx
640fe8:	23 44 24 18          	and    0x18(%esp),%eax
640fec:	23 54 24 1c          	and    0x1c(%esp),%edx
640ff0:	52                   	push   %edx
640ff1:	50                   	push   %eax
640ff2:	8b 44 24 18          	mov    0x18(%esp),%eax
640ff6:	8b 54 24 1c          	mov    0x1c(%esp),%edx
640ffa:	f7 d0                	not    %eax
640ffc:	f7 d2                	not    %edx
640ffe:	23 44 24 28          	and    0x28(%esp),%eax
641002:	23 54 24 2c          	and    0x2c(%esp),%edx
641006:	33 04 24             	xor    (%esp),%eax
641009:	33 54 24 04          	xor    0x4(%esp),%edx
64100d:	83 c4 08             	add    $0x8,%esp
641010:	03 04 24             	add    (%esp),%eax
641013:	13 54 24 04          	adc    0x4(%esp),%edx
641017:	83 c4 08             	add    $0x8,%esp
64101a:	05 e2 b4 ff d5       	add    $0xd5ffb4e2,%eax
64101f:	81 d2 c3 7d 0c 55    	adc    $0x550c7dc3,%edx
641025:	03 84 24 a8 00 00 00 	add    0xa8(%esp),%eax
64102c:	13 94 24 ac 00 00 00 	adc    0xac(%esp),%edx
641033:	89 44 24 40          	mov    %eax,0x40(%esp)
641037:	89 54 24 44          	mov    %edx,0x44(%esp)
64103b:	8b 44 24 28          	mov    0x28(%esp),%eax
64103f:	8b 54 24 2c          	mov    0x2c(%esp),%edx
641043:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
641047:	c1 ea 1c             	shr    $0x1c,%edx
64104a:	52                   	push   %edx
64104b:	50                   	push   %eax
64104c:	8b 54 24 30          	mov    0x30(%esp),%edx
641050:	c1 e2 04             	shl    $0x4,%edx
641053:	33 c0                	xor    %eax,%eax
641055:	0b 04 24             	or     (%esp),%eax
641058:	0b 54 24 04          	or     0x4(%esp),%edx
64105c:	83 c4 08             	add    $0x8,%esp
64105f:	52                   	push   %edx
641060:	50                   	push   %eax
641061:	8b 44 24 34          	mov    0x34(%esp),%eax
641065:	c1 e8 02             	shr    $0x2,%eax
641068:	33 d2                	xor    %edx,%edx
64106a:	52                   	push   %edx
64106b:	50                   	push   %eax
64106c:	8b 44 24 38          	mov    0x38(%esp),%eax
641070:	8b 54 24 3c          	mov    0x3c(%esp),%edx
641074:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
641078:	c1 e0 1e             	shl    $0x1e,%eax
64107b:	0b 04 24             	or     (%esp),%eax
64107e:	0b 54 24 04          	or     0x4(%esp),%edx
641082:	83 c4 08             	add    $0x8,%esp
641085:	33 04 24             	xor    (%esp),%eax
641088:	33 54 24 04          	xor    0x4(%esp),%edx
64108c:	83 c4 08             	add    $0x8,%esp
64108f:	52                   	push   %edx
641090:	50                   	push   %eax
641091:	8b 44 24 34          	mov    0x34(%esp),%eax
641095:	c1 e8 07             	shr    $0x7,%eax
641098:	33 d2                	xor    %edx,%edx
64109a:	52                   	push   %edx
64109b:	50                   	push   %eax
64109c:	8b 44 24 38          	mov    0x38(%esp),%eax
6410a0:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6410a4:	0f a4 c2 19          	shld   $0x19,%eax,%edx
6410a8:	c1 e0 19             	shl    $0x19,%eax
6410ab:	0b 04 24             	or     (%esp),%eax
6410ae:	0b 54 24 04          	or     0x4(%esp),%edx
6410b2:	83 c4 08             	add    $0x8,%esp
6410b5:	33 04 24             	xor    (%esp),%eax
6410b8:	33 54 24 04          	xor    0x4(%esp),%edx
6410bc:	83 c4 08             	add    $0x8,%esp
6410bf:	52                   	push   %edx
6410c0:	50                   	push   %eax
6410c1:	8b 44 24 30          	mov    0x30(%esp),%eax
6410c5:	8b 54 24 34          	mov    0x34(%esp),%edx
6410c9:	23 44 24 38          	and    0x38(%esp),%eax
6410cd:	23 54 24 3c          	and    0x3c(%esp),%edx
6410d1:	52                   	push   %edx
6410d2:	50                   	push   %eax
6410d3:	8b 44 24 38          	mov    0x38(%esp),%eax
6410d7:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6410db:	23 44 24 48          	and    0x48(%esp),%eax
6410df:	23 54 24 4c          	and    0x4c(%esp),%edx
6410e3:	33 04 24             	xor    (%esp),%eax
6410e6:	33 54 24 04          	xor    0x4(%esp),%edx
6410ea:	83 c4 08             	add    $0x8,%esp
6410ed:	52                   	push   %edx
6410ee:	50                   	push   %eax
6410ef:	8b 44 24 40          	mov    0x40(%esp),%eax
6410f3:	8b 54 24 44          	mov    0x44(%esp),%edx
6410f7:	23 44 24 48          	and    0x48(%esp),%eax
6410fb:	23 54 24 4c          	and    0x4c(%esp),%edx
6410ff:	33 04 24             	xor    (%esp),%eax
641102:	33 54 24 04          	xor    0x4(%esp),%edx
641106:	83 c4 08             	add    $0x8,%esp
641109:	03 04 24             	add    (%esp),%eax
64110c:	13 54 24 04          	adc    0x4(%esp),%edx
641110:	83 c4 08             	add    $0x8,%esp
641113:	89 44 24 48          	mov    %eax,0x48(%esp)
641117:	89 54 24 4c          	mov    %edx,0x4c(%esp)
64111b:	8b 04 24             	mov    (%esp),%eax
64111e:	8b 54 24 04          	mov    0x4(%esp),%edx
641122:	03 44 24 40          	add    0x40(%esp),%eax
641126:	13 54 24 44          	adc    0x44(%esp),%edx
64112a:	89 04 24             	mov    %eax,(%esp)
64112d:	89 54 24 04          	mov    %edx,0x4(%esp)
641131:	8b 44 24 40          	mov    0x40(%esp),%eax
641135:	8b 54 24 44          	mov    0x44(%esp),%edx
641139:	03 44 24 48          	add    0x48(%esp),%eax
64113d:	13 54 24 4c          	adc    0x4c(%esp),%edx
641141:	89 44 24 20          	mov    %eax,0x20(%esp)
641145:	89 54 24 24          	mov    %edx,0x24(%esp)
641149:	8b 04 24             	mov    (%esp),%eax
64114c:	8b 54 24 04          	mov    0x4(%esp),%edx
641150:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
641154:	c1 ea 0e             	shr    $0xe,%edx
641157:	52                   	push   %edx
641158:	50                   	push   %eax
641159:	8b 54 24 08          	mov    0x8(%esp),%edx
64115d:	c1 e2 12             	shl    $0x12,%edx
641160:	33 c0                	xor    %eax,%eax
641162:	0b 04 24             	or     (%esp),%eax
641165:	0b 54 24 04          	or     0x4(%esp),%edx
641169:	83 c4 08             	add    $0x8,%esp
64116c:	52                   	push   %edx
64116d:	50                   	push   %eax
64116e:	8b 44 24 08          	mov    0x8(%esp),%eax
641172:	8b 54 24 0c          	mov    0xc(%esp),%edx
641176:	0f ac d0 12          	shrd   $0x12,%edx,%eax
64117a:	c1 ea 12             	shr    $0x12,%edx
64117d:	52                   	push   %edx
64117e:	50                   	push   %eax
64117f:	8b 54 24 10          	mov    0x10(%esp),%edx
641183:	c1 e2 0e             	shl    $0xe,%edx
641186:	33 c0                	xor    %eax,%eax
641188:	0b 04 24             	or     (%esp),%eax
64118b:	0b 54 24 04          	or     0x4(%esp),%edx
64118f:	83 c4 08             	add    $0x8,%esp
641192:	33 04 24             	xor    (%esp),%eax
641195:	33 54 24 04          	xor    0x4(%esp),%edx
641199:	83 c4 08             	add    $0x8,%esp
64119c:	52                   	push   %edx
64119d:	50                   	push   %eax
64119e:	8b 44 24 0c          	mov    0xc(%esp),%eax
6411a2:	c1 e8 09             	shr    $0x9,%eax
6411a5:	33 d2                	xor    %edx,%edx
6411a7:	52                   	push   %edx
6411a8:	50                   	push   %eax
6411a9:	8b 44 24 10          	mov    0x10(%esp),%eax
6411ad:	8b 54 24 14          	mov    0x14(%esp),%edx
6411b1:	0f a4 c2 17          	shld   $0x17,%eax,%edx
6411b5:	c1 e0 17             	shl    $0x17,%eax
6411b8:	0b 04 24             	or     (%esp),%eax
6411bb:	0b 54 24 04          	or     0x4(%esp),%edx
6411bf:	83 c4 08             	add    $0x8,%esp
6411c2:	33 04 24             	xor    (%esp),%eax
6411c5:	33 54 24 04          	xor    0x4(%esp),%edx
6411c9:	83 c4 08             	add    $0x8,%esp
6411cc:	03 44 24 18          	add    0x18(%esp),%eax
6411d0:	13 54 24 1c          	adc    0x1c(%esp),%edx
6411d4:	52                   	push   %edx
6411d5:	50                   	push   %eax
6411d6:	8b 44 24 08          	mov    0x8(%esp),%eax
6411da:	8b 54 24 0c          	mov    0xc(%esp),%edx
6411de:	23 44 24 10          	and    0x10(%esp),%eax
6411e2:	23 54 24 14          	and    0x14(%esp),%edx
6411e6:	52                   	push   %edx
6411e7:	50                   	push   %eax
6411e8:	8b 44 24 10          	mov    0x10(%esp),%eax
6411ec:	8b 54 24 14          	mov    0x14(%esp),%edx
6411f0:	f7 d0                	not    %eax
6411f2:	f7 d2                	not    %edx
6411f4:	23 44 24 20          	and    0x20(%esp),%eax
6411f8:	23 54 24 24          	and    0x24(%esp),%edx
6411fc:	33 04 24             	xor    (%esp),%eax
6411ff:	33 54 24 04          	xor    0x4(%esp),%edx
641203:	83 c4 08             	add    $0x8,%esp
641206:	03 04 24             	add    (%esp),%eax
641209:	13 54 24 04          	adc    0x4(%esp),%edx
64120d:	83 c4 08             	add    $0x8,%esp
641210:	05 6f 89 7b f2       	add    $0xf27b896f,%eax
641215:	81 d2 74 5d be 72    	adc    $0x72be5d74,%edx
64121b:	03 84 24 b0 00 00 00 	add    0xb0(%esp),%eax
641222:	13 94 24 b4 00 00 00 	adc    0xb4(%esp),%edx
641229:	89 44 24 40          	mov    %eax,0x40(%esp)
64122d:	89 54 24 44          	mov    %edx,0x44(%esp)
641231:	8b 44 24 20          	mov    0x20(%esp),%eax
641235:	8b 54 24 24          	mov    0x24(%esp),%edx
641239:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
64123d:	c1 ea 1c             	shr    $0x1c,%edx
641240:	52                   	push   %edx
641241:	50                   	push   %eax
641242:	8b 54 24 28          	mov    0x28(%esp),%edx
641246:	c1 e2 04             	shl    $0x4,%edx
641249:	33 c0                	xor    %eax,%eax
64124b:	0b 04 24             	or     (%esp),%eax
64124e:	0b 54 24 04          	or     0x4(%esp),%edx
641252:	83 c4 08             	add    $0x8,%esp
641255:	52                   	push   %edx
641256:	50                   	push   %eax
641257:	8b 44 24 2c          	mov    0x2c(%esp),%eax
64125b:	c1 e8 02             	shr    $0x2,%eax
64125e:	33 d2                	xor    %edx,%edx
641260:	52                   	push   %edx
641261:	50                   	push   %eax
641262:	8b 44 24 30          	mov    0x30(%esp),%eax
641266:	8b 54 24 34          	mov    0x34(%esp),%edx
64126a:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
64126e:	c1 e0 1e             	shl    $0x1e,%eax
641271:	0b 04 24             	or     (%esp),%eax
641274:	0b 54 24 04          	or     0x4(%esp),%edx
641278:	83 c4 08             	add    $0x8,%esp
64127b:	33 04 24             	xor    (%esp),%eax
64127e:	33 54 24 04          	xor    0x4(%esp),%edx
641282:	83 c4 08             	add    $0x8,%esp
641285:	52                   	push   %edx
641286:	50                   	push   %eax
641287:	8b 44 24 2c          	mov    0x2c(%esp),%eax
64128b:	c1 e8 07             	shr    $0x7,%eax
64128e:	33 d2                	xor    %edx,%edx
641290:	52                   	push   %edx
641291:	50                   	push   %eax
641292:	8b 44 24 30          	mov    0x30(%esp),%eax
641296:	8b 54 24 34          	mov    0x34(%esp),%edx
64129a:	0f a4 c2 19          	shld   $0x19,%eax,%edx
64129e:	c1 e0 19             	shl    $0x19,%eax
6412a1:	0b 04 24             	or     (%esp),%eax
6412a4:	0b 54 24 04          	or     0x4(%esp),%edx
6412a8:	83 c4 08             	add    $0x8,%esp
6412ab:	33 04 24             	xor    (%esp),%eax
6412ae:	33 54 24 04          	xor    0x4(%esp),%edx
6412b2:	83 c4 08             	add    $0x8,%esp
6412b5:	52                   	push   %edx
6412b6:	50                   	push   %eax
6412b7:	8b 44 24 28          	mov    0x28(%esp),%eax
6412bb:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6412bf:	23 44 24 30          	and    0x30(%esp),%eax
6412c3:	23 54 24 34          	and    0x34(%esp),%edx
6412c7:	52                   	push   %edx
6412c8:	50                   	push   %eax
6412c9:	8b 44 24 30          	mov    0x30(%esp),%eax
6412cd:	8b 54 24 34          	mov    0x34(%esp),%edx
6412d1:	23 44 24 40          	and    0x40(%esp),%eax
6412d5:	23 54 24 44          	and    0x44(%esp),%edx
6412d9:	33 04 24             	xor    (%esp),%eax
6412dc:	33 54 24 04          	xor    0x4(%esp),%edx
6412e0:	83 c4 08             	add    $0x8,%esp
6412e3:	52                   	push   %edx
6412e4:	50                   	push   %eax
6412e5:	8b 44 24 38          	mov    0x38(%esp),%eax
6412e9:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6412ed:	23 44 24 40          	and    0x40(%esp),%eax
6412f1:	23 54 24 44          	and    0x44(%esp),%edx
6412f5:	33 04 24             	xor    (%esp),%eax
6412f8:	33 54 24 04          	xor    0x4(%esp),%edx
6412fc:	83 c4 08             	add    $0x8,%esp
6412ff:	03 04 24             	add    (%esp),%eax
641302:	13 54 24 04          	adc    0x4(%esp),%edx
641306:	83 c4 08             	add    $0x8,%esp
641309:	89 44 24 48          	mov    %eax,0x48(%esp)
64130d:	89 54 24 4c          	mov    %edx,0x4c(%esp)
641311:	8b 44 24 38          	mov    0x38(%esp),%eax
641315:	8b 54 24 3c          	mov    0x3c(%esp),%edx
641319:	03 44 24 40          	add    0x40(%esp),%eax
64131d:	13 54 24 44          	adc    0x44(%esp),%edx
641321:	89 44 24 38          	mov    %eax,0x38(%esp)