644017:	52                   	push   %edx
644018:	50                   	push   %eax
644019:	8b 44 24 38          	mov    0x38(%esp),%eax
64401d:	8b 54 24 3c          	mov    0x3c(%esp),%edx
644021:	23 44 24 48          	and    0x48(%esp),%eax
644025:	23 54 24 4c          	and    0x4c(%esp),%edx
644029:	33 04 24             	xor    (%esp),%eax
64402c:	33 54 24 04          	xor    0x4(%esp),%edx
644030:	83 c4 08             	add    $0x8,%esp
644033:	52                   	push   %edx
644034:	50                   	push   %eax
644035:	8b 44 24 40          	mov    0x40(%esp),%eax
644039:	8b 54 24 44          	mov    0x44(%esp),%edx
64403d:	23 44 24 48          	and    0x48(%esp),%eax
644041:	23 54 24 4c          	and    0x4c(%esp),%edx
644045:	33 04 24             	xor    (%esp),%eax
644048:	33 54 24 04          	xor    0x4(%esp),%edx
64404c:	83 c4 08             	add    $0x8,%esp
64404f:	03 04 24             	add    (%esp),%eax
644052:	13 54 24 04          	adc    0x4(%esp),%edx
644056:	83 c4 08             	add    $0x8,%esp
644059:	89 44 24 48          	mov    %eax,0x48(%esp)
64405d:	89 54 24 4c          	mov    %edx,0x4c(%esp)
644061:	8b 04 24             	mov    (%esp),%eax
644064:	8b 54 24 04          	mov    0x4(%esp),%edx
644068:	03 44 24 40          	add    0x40(%esp),%eax
64406c:	13 54 24 44          	adc    0x44(%esp),%edx
644070:	89 04 24             	mov    %eax,(%esp)
644073:	89 54 24 04          	mov    %edx,0x4(%esp)
644077:	8b 44 24 40          	mov    0x40(%esp),%eax
64407b:	8b 54 24 44          	mov    0x44(%esp),%edx
64407f:	03 44 24 48          	add    0x48(%esp),%eax
644083:	13 54 24 4c          	adc    0x4c(%esp),%edx
644087:	89 44 24 20          	mov    %eax,0x20(%esp)
64408b:	89 54 24 24          	mov    %edx,0x24(%esp)
64408f:	8b 04 24             	mov    (%esp),%eax
644092:	8b 54 24 04          	mov    0x4(%esp),%edx
644096:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
64409a:	c1 ea 0e             	shr    $0xe,%edx
64409d:	52                   	push   %edx
64409e:	50                   	push   %eax
64409f:	8b 54 24 08          	mov    0x8(%esp),%edx
6440a3:	c1 e2 12             	shl    $0x12,%edx
6440a6:	33 c0                	xor    %eax,%eax
6440a8:	0b 04 24             	or     (%esp),%eax
6440ab:	0b 54 24 04          	or     0x4(%esp),%edx
6440af:	83 c4 08             	add    $0x8,%esp
6440b2:	52                   	push   %edx
6440b3:	50                   	push   %eax
6440b4:	8b 44 24 08          	mov    0x8(%esp),%eax
6440b8:	8b 54 24 0c          	mov    0xc(%esp),%edx
6440bc:	0f ac d0 12          	shrd   $0x12,%edx,%eax
6440c0:	c1 ea 12             	shr    $0x12,%edx
6440c3:	52                   	push   %edx
6440c4:	50                   	push   %eax
6440c5:	8b 54 24 10          	mov    0x10(%esp),%edx
6440c9:	c1 e2 0e             	shl    $0xe,%edx
6440cc:	33 c0                	xor    %eax,%eax
6440ce:	0b 04 24             	or     (%esp),%eax
6440d1:	0b 54 24 04          	or     0x4(%esp),%edx
6440d5:	83 c4 08             	add    $0x8,%esp
6440d8:	33 04 24             	xor    (%esp),%eax
6440db:	33 54 24 04          	xor    0x4(%esp),%edx
6440df:	83 c4 08             	add    $0x8,%esp
6440e2:	52                   	push   %edx
6440e3:	50                   	push   %eax
6440e4:	8b 44 24 0c          	mov    0xc(%esp),%eax
6440e8:	c1 e8 09             	shr    $0x9,%eax
6440eb:	33 d2                	xor    %edx,%edx
6440ed:	52                   	push   %edx
6440ee:	50                   	push   %eax
6440ef:	8b 44 24 10          	mov    0x10(%esp),%eax
6440f3:	8b 54 24 14          	mov    0x14(%esp),%edx
6440f7:	0f a4 c2 17          	shld   $0x17,%eax,%edx
6440fb:	c1 e0 17             	shl    $0x17,%eax
6440fe:	0b 04 24             	or     (%esp),%eax
644101:	0b 54 24 04          	or     0x4(%esp),%edx
644105:	83 c4 08             	add    $0x8,%esp
644108:	33 04 24             	xor    (%esp),%eax
64410b:	33 54 24 04          	xor    0x4(%esp),%edx
64410f:	83 c4 08             	add    $0x8,%esp
644112:	03 44 24 18          	add    0x18(%esp),%eax
644116:	13 54 24 1c          	adc    0x1c(%esp),%edx
64411a:	52                   	push   %edx
64411b:	50                   	push   %eax
64411c:	8b 44 24 08          	mov    0x8(%esp),%eax
644120:	8b 54 24 0c          	mov    0xc(%esp),%edx
644124:	23 44 24 10          	and    0x10(%esp),%eax
644128:	23 54 24 14          	and    0x14(%esp),%edx
64412c:	52                   	push   %edx
64412d:	50                   	push   %eax
64412e:	8b 44 24 10          	mov    0x10(%esp),%eax
644132:	8b 54 24 14          	mov    0x14(%esp),%edx
644136:	f7 d0                	not    %eax
644138:	f7 d2                	not    %edx
64413a:	23 44 24 20          	and    0x20(%esp),%eax
64413e:	23 54 24 24          	and    0x24(%esp),%edx
644142:	33 04 24             	xor    (%esp),%eax
644145:	33 54 24 04          	xor    0x4(%esp),%edx
644149:	83 c4 08             	add    $0x8,%esp
64414c:	03 04 24             	add    (%esp),%eax
64414f:	13 54 24 04          	adc    0x4(%esp),%edx
644153:	83 c4 08             	add    $0x8,%esp
644156:	05 de 63 af 8b       	add    $0x8baf63de,%eax
64415b:	81 d2 54 73 0a 65    	adc    $0x650a7354,%edx
644161:	03 84 24 70 01 00 00 	add    0x170(%esp),%eax
644168:	13 94 24 74 01 00 00 	adc    0x174(%esp),%edx
64416f:	89 44 24 40          	mov    %eax,0x40(%esp)
644173:	89 54 24 44          	mov    %edx,0x44(%esp)
644177:	8b 44 24 20          	mov    0x20(%esp),%eax
64417b:	8b 54 24 24          	mov    0x24(%esp),%edx
64417f:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
644183:	c1 ea 1c             	shr    $0x1c,%edx
644186:	52                   	push   %edx
644187:	50                   	push   %eax
644188:	8b 54 24 28          	mov    0x28(%esp),%edx
64418c:	c1 e2 04             	shl    $0x4,%edx
64418f:	33 c0                	xor    %eax,%eax
644191:	0b 04 24             	or     (%esp),%eax
644194:	0b 54 24 04          	or     0x4(%esp),%edx
644198:	83 c4 08             	add    $0x8,%esp
64419b:	52                   	push   %edx
64419c:	50                   	push   %eax
64419d:	8b 44 24 2c          	mov    0x2c(%esp),%eax
6441a1:	c1 e8 02             	shr    $0x2,%eax
6441a4:	33 d2                	xor    %edx,%edx
6441a6:	52                   	push   %edx
6441a7:	50                   	push   %eax
6441a8:	8b 44 24 30          	mov    0x30(%esp),%eax
6441ac:	8b 54 24 34          	mov    0x34(%esp),%edx
6441b0:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
6441b4:	c1 e0 1e             	shl    $0x1e,%eax
6441b7:	0b 04 24             	or     (%esp),%eax
6441ba:	0b 54 24 04          	or     0x4(%esp),%edx
6441be:	83 c4 08             	add    $0x8,%esp
6441c1:	33 04 24             	xor    (%esp),%eax
6441c4:	33 54 24 04          	xor    0x4(%esp),%edx
6441c8:	83 c4 08             	add    $0x8,%esp
6441cb:	52                   	push   %edx
6441cc:	50                   	push   %eax
6441cd:	8b 44 24 2c          	mov    0x2c(%esp),%eax
6441d1:	c1 e8 07             	shr    $0x7,%eax
6441d4:	33 d2                	xor    %edx,%edx
6441d6:	52                   	push   %edx
6441d7:	50                   	push   %eax
6441d8:	8b 44 24 30          	mov    0x30(%esp),%eax
6441dc:	8b 54 24 34          	mov    0x34(%esp),%edx
6441e0:	0f a4 c2 19          	shld   $0x19,%eax,%edx
6441e4:	c1 e0 19             	shl    $0x19,%eax
6441e7:	0b 04 24             	or     (%esp),%eax
6441ea:	0b 54 24 04          	or     0x4(%esp),%edx
6441ee:	83 c4 08             	add    $0x8,%esp
6441f1:	33 04 24             	xor    (%esp),%eax
6441f4:	33 54 24 04          	xor    0x4(%esp),%edx
6441f8:	83 c4 08             	add    $0x8,%esp
6441fb:	52                   	push   %edx
6441fc:	50                   	push   %eax
6441fd:	8b 44 24 28          	mov    0x28(%esp),%eax
644201:	8b 54 24 2c          	mov    0x2c(%esp),%edx
644205:	23 44 24 30          	and    0x30(%esp),%eax
644209:	23 54 24 34          	and    0x34(%esp),%edx
64420d:	52                   	push   %edx
64420e:	50                   	push   %eax
64420f:	8b 44 24 30          	mov    0x30(%esp),%eax
644213:	8b 54 24 34          	mov    0x34(%esp),%edx
644217:	23 44 24 40          	and    0x40(%esp),%eax
64421b:	23 54 24 44          	and    0x44(%esp),%edx
64421f:	33 04 24             	xor    (%esp),%eax
644222:	33 54 24 04          	xor    0x4(%esp),%edx
644226:	83 c4 08             	add    $0x8,%esp
644229:	52                   	push   %edx
64422a:	50                   	push   %eax
64422b:	8b 44 24 38          	mov    0x38(%esp),%eax
64422f:	8b 54 24 3c          	mov    0x3c(%esp),%edx
644233:	23 44 24 40          	and    0x40(%esp),%eax
644237:	23 54 24 44          	and    0x44(%esp),%edx
64423b:	33 04 24             	xor    (%esp),%eax
64423e:	33 54 24 04          	xor    0x4(%esp),%edx
644242:	83 c4 08             	add    $0x8,%esp
644245:	03 04 24             	add    (%esp),%eax
644248:	13 54 24 04          	adc    0x4(%esp),%edx
64424c:	83 c4 08             	add    $0x8,%esp
64424f:	89 44 24 48          	mov    %eax,0x48(%esp)
644253:	89 54 24 4c          	mov    %edx,0x4c(%esp)
644257:	8b 44 24 38          	mov    0x38(%esp),%eax
64425b:	8b 54 24 3c          	mov    0x3c(%esp),%edx
64425f:	03 44 24 40          	add    0x40(%esp),%eax
644263:	13 54 24 44          	adc    0x44(%esp),%edx
644267:	89 44 24 38          	mov    %eax,0x38(%esp)
64426b:	89 54 24 3c          	mov    %edx,0x3c(%esp)
64426f:	8b 44 24 40          	mov    0x40(%esp),%eax
644273:	8b 54 24 44          	mov    0x44(%esp),%edx
644277:	03 44 24 48          	add    0x48(%esp),%eax
64427b:	13 54 24 4c          	adc    0x4c(%esp),%edx
64427f:	89 44 24 18          	mov    %eax,0x18(%esp)
644283:	89 54 24 1c          	mov    %edx,0x1c(%esp)
644287:	8b 44 24 38          	mov    0x38(%esp),%eax
64428b:	8b 54 24 3c          	mov    0x3c(%esp),%edx
64428f:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
644293:	c1 ea 0e             	shr    $0xe,%edx
644296:	52                   	push   %edx
644297:	50                   	push   %eax
644298:	8b 54 24 40          	mov    0x40(%esp),%edx
64429c:	c1 e2 12             	shl    $0x12,%edx
64429f:	33 c0                	xor    %eax,%eax
6442a1:	0b 04 24             	or     (%esp),%eax
6442a4:	0b 54 24 04          	or     0x4(%esp),%edx
6442a8:	83 c4 08             	add    $0x8,%esp
6442ab:	52                   	push   %edx
6442ac:	50                   	push   %eax
6442ad:	8b 44 24 40          	mov    0x40(%esp),%eax
6442b1:	8b 54 24 44          	mov    0x44(%esp),%edx
6442b5:	0f ac d0 12          	shrd   $0x12,%edx,%eax
6442b9:	c1 ea 12             	shr    $0x12,%edx
6442bc:	52                   	push   %edx
6442bd:	50                   	push   %eax
6442be:	8b 54 24 48          	mov    0x48(%esp),%edx
6442c2:	c1 e2 0e             	shl    $0xe,%edx
6442c5:	33 c0                	xor    %eax,%eax
6442c7:	0b 04 24             	or     (%esp),%eax
6442ca:	0b 54 24 04          	or     0x4(%esp),%edx
6442ce:	83 c4 08             	add    $0x8,%esp
6442d1:	33 04 24             	xor    (%esp),%eax
6442d4:	33 54 24 04          	xor    0x4(%esp),%edx
6442d8:	83 c4 08             	add    $0x8,%esp
6442db:	52                   	push   %edx
6442dc:	50                   	push   %eax
6442dd:	8b 44 24 44          	mov    0x44(%esp),%eax
6442e1:	c1 e8 09             	shr    $0x9,%eax
6442e4:	33 d2                	xor    %edx,%edx
6442e6:	52                   	push   %edx
6442e7:	50                   	push   %eax
6442e8:	8b 44 24 48          	mov    0x48(%esp),%eax
6442ec:	8b 54 24 4c          	mov    0x4c(%esp),%edx
6442f0:	0f a4 c2 17          	shld   $0x17,%eax,%edx
6442f4:	c1 e0 17             	shl    $0x17,%eax
6442f7:	0b 04 24             	or     (%esp),%eax
6442fa:	0b 54 24 04          	or     0x4(%esp),%edx
6442fe:	83 c4 08             	add    $0x8,%esp
644301:	33 04 24             	xor    (%esp),%eax
644304:	33 54 24 04          	xor    0x4(%esp),%edx
644308:	83 c4 08             	add    $0x8,%esp
64430b:	03 44 24 10          	add    0x10(%esp),%eax
64430f:	13 54 24 14          	adc    0x14(%esp),%edx
644313:	52                   	push   %edx
644314:	50                   	push   %eax
644315:	8b 44 24 40          	mov    0x40(%esp),%eax
644319:	8b 54 24 44          	mov    0x44(%esp),%edx
64431d:	23 44 24 08          	and    0x8(%esp),%eax
644321:	23 54 24 0c          	and    0xc(%esp),%edx
644325:	52                   	push   %edx
644326:	50                   	push   %eax
644327:	8b 44 24 48          	mov    0x48(%esp),%eax
64432b:	8b 54 24 4c          	mov    0x4c(%esp),%edx
64432f:	f7 d0                	not    %eax
644331:	f7 d2                	not    %edx
644333:	23 44 24 18          	and    0x18(%esp),%eax
644337:	23 54 24 1c          	and    0x1c(%esp),%edx
64433b:	33 04 24             	xor    (%esp),%eax
64433e:	33 54 24 04          	xor    0x4(%esp),%edx
644342:	83 c4 08             	add    $0x8,%esp
644345:	03 04 24             	add    (%esp),%eax
644348:	13 54 24 04          	adc    0x4(%esp),%edx
64434c:	83 c4 08             	add    $0x8,%esp
64434f:	05 a8 b2 77 3c       	add    $0x3c77b2a8,%eax
644354:	81 d2 bb 0a 6a 76    	adc    $0x766a0abb,%edx
64435a:	03 84 24 78 01 00 00 	add    0x178(%esp),%eax
644361:	13 94 24 7c 01 00 00 	adc    0x17c(%esp),%edx
644368:	89 44 24 40          	mov    %eax,0x40(%esp)
64436c:	89 54 24 44          	mov    %edx,0x44(%esp)
644370:	8b 44 24 18          	mov    0x18(%esp),%eax
644374:	8b 54 24 1c          	mov    0x1c(%esp),%edx
644378:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
64437c:	c1 ea 1c             	shr    $0x1c,%edx
64437f:	52                   	push   %edx
644380:	50                   	push   %eax
644381:	8b 54 24 20          	mov    0x20(%esp),%edx
644385:	c1 e2 04             	shl    $0x4,%edx
644388:	33 c0                	xor    %eax,%eax
64438a:	0b 04 24             	or     (%esp),%eax
64438d:	0b 54 24 04          	or     0x4(%esp),%edx
644391:	83 c4 08             	add    $0x8,%esp
644394:	52                   	push   %edx
644395:	50                   	push   %eax
644396:	8b 44 24 24          	mov    0x24(%esp),%eax
64439a:	c1 e8 02             	shr    $0x2,%eax
64439d:	33 d2                	xor    %edx,%edx
64439f:	52                   	push   %edx
6443a0:	50                   	push   %eax
6443a1:	8b 44 24 28          	mov    0x28(%esp),%eax
6443a5:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6443a9:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
6443ad:	c1 e0 1e             	shl    $0x1e,%eax
6443b0:	0b 04 24             	or     (%esp),%eax
6443b3:	0b 54 24 04          	or     0x4(%esp),%edx
6443b7:	83 c4 08             	add    $0x8,%esp
6443ba:	33 04 24             	xor    (%esp),%eax
6443bd:	33 54 24 04          	xor    0x4(%esp),%edx
6443c1:	83 c4 08             	add    $0x8,%esp
6443c4:	52                   	push   %edx
6443c5:	50                   	push   %eax
6443c6:	8b 44 24 24          	mov    0x24(%esp),%eax
6443ca:	c1 e8 07             	shr    $0x7,%eax
6443cd:	33 d2                	xor    %edx,%edx
6443cf:	52                   	push   %edx
6443d0:	50                   	push   %eax
6443d1:	8b 44 24 28          	mov    0x28(%esp),%eax
6443d5:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6443d9:	0f a4 c2 19          	shld   $0x19,%eax,%edx
6443dd:	c1 e0 19             	shl    $0x19,%eax
6443e0:	0b 04 24             	or     (%esp),%eax
6443e3:	0b 54 24 04          	or     0x4(%esp),%edx
6443e7:	83 c4 08             	add    $0x8,%esp
6443ea:	33 04 24             	xor    (%esp),%eax
6443ed:	33 54 24 04          	xor    0x4(%esp),%edx
6443f1:	83 c4 08             	add    $0x8,%esp
6443f4:	52                   	push   %edx
6443f5:	50                   	push   %eax
6443f6:	8b 44 24 20          	mov    0x20(%esp),%eax
6443fa:	8b 54 24 24          	mov    0x24(%esp),%edx
6443fe:	23 44 24 28          	and    0x28(%esp),%eax
644402:	23 54 24 2c          	and    0x2c(%esp),%edx
644406:	52                   	push   %edx
644407:	50                   	push   %eax
644408:	8b 44 24 28          	mov    0x28(%esp),%eax
64440c:	8b 54 24 2c          	mov    0x2c(%esp),%edx
644410:	23 44 24 38          	and    0x38(%esp),%eax
644414:	23 54 24 3c          	and    0x3c(%esp),%edx
644418:	33 04 24             	xor    (%esp),%eax
64441b:	33 54 24 04          	xor    0x4(%esp),%edx
64441f:	83 c4 08             	add    $0x8,%esp
644422:	52                   	push   %edx
644423:	50                   	push   %eax
644424:	8b 44 24 30          	mov    0x30(%esp),%eax
644428:	8b 54 24 34          	mov    0x34(%esp),%edx
64442c:	23 44 24 38          	and    0x38(%esp),%eax
644430:	23 54 24 3c          	and    0x3c(%esp),%edx
644434:	33 04 24             	xor    (%esp),%eax
644437:	33 54 24 04          	xor    0x4(%esp),%edx
64443b:	83 c4 08             	add    $0x8,%esp
64443e:	03 04 24             	add    (%esp),%eax
644441:	13 54 24 04          	adc    0x4(%esp),%edx
644445:	83 c4 08             	add    $0x8,%esp
644448:	89 44 24 48          	mov    %eax,0x48(%esp)
64444c:	89 54 24 4c          	mov    %edx,0x4c(%esp)
644450:	8b 44 24 30          	mov    0x30(%esp),%eax
644454:	8b 54 24 34          	mov    0x34(%esp),%edx
644458:	03 44 24 40          	add    0x40(%esp),%eax
64445c:	13 54 24 44          	adc    0x44(%esp),%edx
644460:	89 44 24 30          	mov    %eax,0x30(%esp)