783efb:	8b 8c 24 08 01 00 00 	mov    0x108(%esp),%ecx
783f02:	8b 94 24 14 01 00 00 	mov    0x114(%esp),%edx
783f09:	53                   	push   %ebx
783f0a:	8b 9c 24 14 01 00 00 	mov    0x114(%esp),%ebx
783f11:	55                   	push   %ebp
783f12:	56                   	push   %esi
783f13:	57                   	push   %edi
783f14:	89 44 24 40          	mov    %eax,0x40(%esp)
783f18:	89 4c 24 54          	mov    %ecx,0x54(%esp)
783f1c:	89 94 24 c8 00 00 00 	mov    %edx,0xc8(%esp)
783f23:	89 9c 24 c4 00 00 00 	mov    %ebx,0xc4(%esp)
783f2a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
783f30:	85 d2                	test   %edx,%edx
783f32:	72 17                	jb     0x783f4b
783f34:	77 05                	ja     0x783f3b
783f36:	83 fb 40             	cmp    $0x40,%ebx
783f39:	76 10                	jbe    0x783f4b
783f3b:	33 f6                	xor    %esi,%esi
783f3d:	bd 40 00 00 00       	mov    $0x40,%ebp
783f42:	89 b4 24 b4 00 00 00 	mov    %esi,0xb4(%esp)
783f49:	eb 0b                	jmp    0x783f56
783f4b:	8b eb                	mov    %ebx,%ebp
783f4d:	89 94 24 b4 00 00 00 	mov    %edx,0xb4(%esp)
783f54:	8b f2                	mov    %edx,%esi
783f56:	01 29                	add    %ebp,(%ecx)
783f58:	8d 84 24 cc 00 00 00 	lea    0xcc(%esp),%eax
783f5f:	6a 40                	push   $0x40
783f61:	11 71 04             	adc    %esi,0x4(%ecx)
783f64:	6a 00                	push   $0x0
783f66:	50                   	push   %eax
783f67:	89 ac 24 c4 00 00 00 	mov    %ebp,0xc4(%esp)
783f6e:	e8 45 08 c9 ff       	call   0x4147b8
783f73:	8b dd                	mov    %ebp,%ebx
783f75:	83 c4 0c             	add    $0xc,%esp
783f78:	0f ac f3 03          	shrd   $0x3,%esi,%ebx
783f7c:	33 c0                	xor    %eax,%eax
783f7e:	c1 ee 03             	shr    $0x3,%esi
783f81:	85 db                	test   %ebx,%ebx
783f83:	75 04                	jne    0x783f89
783f85:	85 f6                	test   %esi,%esi
783f87:	74 41                	je     0x783fca
783f89:	8b bc 24 1c 01 00 00 	mov    0x11c(%esp),%edi
783f90:	8d 8c 24 cc 00 00 00 	lea    0xcc(%esp),%ecx
783f97:	2b f9                	sub    %ecx,%edi
783f99:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
783fa0:	8d 14 c7             	lea    (%edi,%eax,8),%edx
783fa3:	8b 8c 14 cc 00 00 00 	mov    0xcc(%esp,%edx,1),%ecx
783faa:	89 8c c4 cc 00 00 00 	mov    %ecx,0xcc(%esp,%eax,8)
783fb1:	8b 8c 14 d0 00 00 00 	mov    0xd0(%esp,%edx,1),%ecx
783fb8:	89 8c c4 d0 00 00 00 	mov    %ecx,0xd0(%esp,%eax,8)
783fbf:	40                   	inc    %eax
783fc0:	33 c9                	xor    %ecx,%ecx
783fc2:	3b c3                	cmp    %ebx,%eax
783fc4:	75 da                	jne    0x783fa0
783fc6:	3b ce                	cmp    %esi,%ecx
783fc8:	75 d6                	jne    0x783fa0
783fca:	83 e5 07             	and    $0x7,%ebp
783fcd:	8b c5                	mov    %ebp,%eax
783fcf:	83 c8 00             	or     $0x0,%eax
783fd2:	74 58                	je     0x78402c
783fd4:	8b 8c 24 b8 00 00 00 	mov    0xb8(%esp),%ecx
783fdb:	33 f6                	xor    %esi,%esi
783fdd:	8b 84 24 b4 00 00 00 	mov    0xb4(%esp),%eax
783fe4:	33 ff                	xor    %edi,%edi
783fe6:	0f ac c1 03          	shrd   $0x3,%eax,%ecx
783fea:	c1 e8 03             	shr    $0x3,%eax
783fed:	8b 84 24 1c 01 00 00 	mov    0x11c(%esp),%eax
783ff4:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
783ff7:	89 44 24 3c          	mov    %eax,0x3c(%esp)
783ffb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
784000:	0f b6 04 30          	movzbl (%eax,%esi,1),%eax
784004:	8b cf                	mov    %edi,%ecx
784006:	99                   	cltd
784007:	e8 53 69 ca ff       	call   0x42a95f
78400c:	09 84 dc cc 00 00 00 	or     %eax,0xcc(%esp,%ebx,8)
784013:	46                   	inc    %esi
784014:	09 94 dc d0 00 00 00 	or     %edx,0xd0(%esp,%ebx,8)
78401b:	83 c7 08             	add    $0x8,%edi
78401e:	8b 44 24 3c          	mov    0x3c(%esp),%eax
784022:	33 c9                	xor    %ecx,%ecx
784024:	3b f5                	cmp    %ebp,%esi
784026:	75 d8                	jne    0x784000
784028:	85 c9                	test   %ecx,%ecx
78402a:	75 d4                	jne    0x784000
78402c:	8b 7c 24 40          	mov    0x40(%esp),%edi
784030:	8b 54 24 54          	mov    0x54(%esp),%edx
784034:	8b 9c 24 f4 00 00 00 	mov    0xf4(%esp),%ebx
78403b:	8b 4f 30             	mov    0x30(%edi),%ecx
78403e:	33 4f 38             	xor    0x38(%edi),%ecx
784041:	33 4f 28             	xor    0x28(%edi),%ecx
784044:	33 4f 20             	xor    0x20(%edi),%ecx
784047:	33 4f 18             	xor    0x18(%edi),%ecx
78404a:	33 4f 10             	xor    0x10(%edi),%ecx
78404d:	33 4f 08             	xor    0x8(%edi),%ecx
784050:	8b 47 34             	mov    0x34(%edi),%eax
784053:	33 47 3c             	xor    0x3c(%edi),%eax
784056:	33 47 2c             	xor    0x2c(%edi),%eax
784059:	33 47 24             	xor    0x24(%edi),%eax
78405c:	33 47 1c             	xor    0x1c(%edi),%eax
78405f:	33 47 14             	xor    0x14(%edi),%eax
784062:	33 47 0c             	xor    0xc(%edi),%eax
784065:	33 0f                	xor    (%edi),%ecx
784067:	33 47 04             	xor    0x4(%edi),%eax
78406a:	81 f1 55 55 55 55    	xor    $0x55555555,%ecx
784070:	35 55 55 55 55       	xor    $0x55555555,%eax
784075:	89 4f 40             	mov    %ecx,0x40(%edi)
784078:	89 47 44             	mov    %eax,0x44(%edi)
78407b:	8b 6a 04             	mov    0x4(%edx),%ebp
78407e:	8b 4a 08             	mov    0x8(%edx),%ecx
784081:	33 0a                	xor    (%edx),%ecx
784083:	8b 42 0c             	mov    0xc(%edx),%eax
784086:	33 c5                	xor    %ebp,%eax
784088:	89 4a 10             	mov    %ecx,0x10(%edx)
78408b:	89 42 14             	mov    %eax,0x14(%edx)
78408e:	8b 4f 08             	mov    0x8(%edi),%ecx
784091:	03 8c 24 d4 00 00 00 	add    0xd4(%esp),%ecx
784098:	8b 47 0c             	mov    0xc(%edi),%eax
78409b:	13 84 24 d8 00 00 00 	adc    0xd8(%esp),%eax
7840a2:	8b 77 18             	mov    0x18(%edi),%esi
7840a5:	03 b4 24 e4 00 00 00 	add    0xe4(%esp),%esi
7840ac:	8b 57 1c             	mov    0x1c(%edi),%edx
7840af:	13 94 24 e8 00 00 00 	adc    0xe8(%esp),%edx
7840b6:	03 5f 28             	add    0x28(%edi),%ebx
7840b9:	8b bc 24 f8 00 00 00 	mov    0xf8(%esp),%edi
7840c0:	89 b4 24 b0 00 00 00 	mov    %esi,0xb0(%esp)
7840c7:	8b 74 24 40          	mov    0x40(%esp),%esi
7840cb:	89 4c 24 58          	mov    %ecx,0x58(%esp)
7840cf:	13 7e 2c             	adc    0x2c(%esi),%edi
7840d2:	8b 74 24 54          	mov    0x54(%esp),%esi
7840d6:	03 1e                	add    (%esi),%ebx
7840d8:	8b 74 24 40          	mov    0x40(%esp),%esi
7840dc:	13 fd                	adc    %ebp,%edi
7840de:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
7840e2:	8b ac 24 04 01 00 00 	mov    0x104(%esp),%ebp
7840e9:	03 6e 38             	add    0x38(%esi),%ebp
7840ec:	89 6c 24 48          	mov    %ebp,0x48(%esp)
7840f0:	8b ac 24 08 01 00 00 	mov    0x108(%esp),%ebp
7840f7:	13 6e 3c             	adc    0x3c(%esi),%ebp
7840fa:	89 6c 24 38          	mov    %ebp,0x38(%esp)
7840fe:	8b 2e                	mov    (%esi),%ebp
784100:	89 6c 24 5c          	mov    %ebp,0x5c(%esp)
784104:	8b dd                	mov    %ebp,%ebx
784106:	8b 6e 04             	mov    0x4(%esi),%ebp
784109:	03 d9                	add    %ecx,%ebx
78410b:	89 6c 24 6c          	mov    %ebp,0x6c(%esp)
78410f:	89 5c 24 18          	mov    %ebx,0x18(%esp)
784113:	8b dd                	mov    %ebp,%ebx
784115:	8b 6c 24 18          	mov    0x18(%esp),%ebp
784119:	13 d8                	adc    %eax,%ebx
78411b:	03 ac 24 cc 00 00 00 	add    0xcc(%esp),%ebp
784122:	89 6c 24 18          	mov    %ebp,0x18(%esp)
784126:	13 9c 24 d0 00 00 00 	adc    0xd0(%esp),%ebx
78412d:	33 ed                	xor    %ebp,%ebp
78412f:	c1 64 24 58 0e       	shll   $0xe,0x58(%esp)
784134:	0f ac c1 12          	shrd   $0x12,%eax,%ecx
784138:	89 5c 24 20          	mov    %ebx,0x20(%esp)
78413c:	0b e9                	or     %ecx,%ebp
78413e:	c1 e8 12             	shr    $0x12,%eax
784141:	8b 4c 24 58          	mov    0x58(%esp),%ecx
784145:	33 6c 24 18          	xor    0x18(%esp),%ebp
784149:	0b c8                	or     %eax,%ecx
78414b:	33 cb                	xor    %ebx,%ecx
78414d:	89 6c 24 10          	mov    %ebp,0x10(%esp)
784151:	8b 6e 10             	mov    0x10(%esi),%ebp
784154:	89 4c 24 58          	mov    %ecx,0x58(%esp)
784158:	8b 4e 14             	mov    0x14(%esi),%ecx
78415b:	8b 84 24 dc 00 00 00 	mov    0xdc(%esp),%eax
784162:	8b b4 24 b0 00 00 00 	mov    0xb0(%esp),%esi
784169:	03 c5                	add    %ebp,%eax
78416b:	89 4c 24 74          	mov    %ecx,0x74(%esp)
78416f:	89 6c 24 70          	mov    %ebp,0x70(%esp)
784173:	8b ac 24 e0 00 00 00 	mov    0xe0(%esp),%ebp
78417a:	13 e9                	adc    %ecx,%ebp
78417c:	03 c6                	add    %esi,%eax
78417e:	89 44 24 14          	mov    %eax,0x14(%esp)
784182:	8b ce                	mov    %esi,%ecx
784184:	13 ea                	adc    %edx,%ebp
784186:	33 c0                	xor    %eax,%eax
784188:	0f ac d6 1c          	shrd   $0x1c,%edx,%esi
78418c:	c1 e1 04             	shl    $0x4,%ecx
78418f:	0b c6                	or     %esi,%eax
784191:	c1 ea 1c             	shr    $0x1c,%edx
784194:	33 44 24 14          	xor    0x14(%esp),%eax
784198:	0b ca                	or     %edx,%ecx
78419a:	8b 74 24 40          	mov    0x40(%esp),%esi
78419e:	33 cd                	xor    %ebp,%ecx
7841a0:	8b 94 24 ec 00 00 00 	mov    0xec(%esp),%edx
7841a7:	89 4c 24 68          	mov    %ecx,0x68(%esp)
7841ab:	89 44 24 34          	mov    %eax,0x34(%esp)
7841af:	8b 4e 20             	mov    0x20(%esi),%ecx
7841b2:	03 d1                	add    %ecx,%edx
7841b4:	8b 46 24             	mov    0x24(%esi),%eax
7841b7:	89 4c 24 78          	mov    %ecx,0x78(%esp)
7841bb:	8b 8c 24 f0 00 00 00 	mov    0xf0(%esp),%ecx
7841c2:	13 c8                	adc    %eax,%ecx
7841c4:	89 44 24 7c          	mov    %eax,0x7c(%esp)
7841c8:	03 54 24 3c          	add    0x3c(%esp),%edx
7841cc:	8b 44 24 3c          	mov    0x3c(%esp),%eax
7841d0:	13 cf                	adc    %edi,%ecx
7841d2:	89 6c 24 2c          	mov    %ebp,0x2c(%esp)
7841d6:	8b ef                	mov    %edi,%ebp
7841d8:	89 4c 24 28          	mov    %ecx,0x28(%esp)
7841dc:	0f a4 c7 13          	shld   $0x13,%eax,%edi
7841e0:	c1 ed 0d             	shr    $0xd,%ebp
7841e3:	33 db                	xor    %ebx,%ebx
7841e5:	c1 e0 13             	shl    $0x13,%eax
7841e8:	0b df                	or     %edi,%ebx
7841ea:	8b bc 24 00 01 00 00 	mov    0x100(%esp),%edi
7841f1:	0b e8                	or     %eax,%ebp
7841f3:	8b 44 24 54          	mov    0x54(%esp),%eax
7841f7:	33 d9                	xor    %ecx,%ebx
7841f9:	33 ea                	xor    %edx,%ebp
7841fb:	89 54 24 24          	mov    %edx,0x24(%esp)
7841ff:	8b 94 24 fc 00 00 00 	mov    0xfc(%esp),%edx
784206:	8b 48 08             	mov    0x8(%eax),%ecx
784209:	03 4e 30             	add    0x30(%esi),%ecx
78420c:	8b 40 0c             	mov    0xc(%eax),%eax
78420f:	13 46 34             	adc    0x34(%esi),%eax
784212:	03 d1                	add    %ecx,%edx
784214:	8b 74 24 48          	mov    0x48(%esp),%esi
784218:	13 f8                	adc    %eax,%edi
78421a:	89 8c 24 c0 00 00 00 	mov    %ecx,0xc0(%esp)
784221:	03 d6                	add    %esi,%edx
784223:	89 84 24 b0 00 00 00 	mov    %eax,0xb0(%esp)
78422a:	89 54 24 1c          	mov    %edx,0x1c(%esp)
78422e:	8b ce                	mov    %esi,%ecx
784230:	8b 54 24 38          	mov    0x38(%esp),%edx
784234:	13 fa                	adc    %edx,%edi
784236:	0f ac d6 1b          	shrd   $0x1b,%edx,%esi
78423a:	33 c0                	xor    %eax,%eax
78423c:	c1 e1 05             	shl    $0x5,%ecx
78423f:	c1 ea 1b             	shr    $0x1b,%edx
784242:	0b c6                	or     %esi,%eax
784244:	33 44 24 1c          	xor    0x1c(%esp),%eax
784248:	0b ca                	or     %edx,%ecx
78424a:	8b 54 24 10          	mov    0x10(%esp),%edx
78424e:	33 cf                	xor    %edi,%ecx
784250:	01 54 24 14          	add    %edx,0x14(%esp)
784254:	8b 74 24 58          	mov    0x58(%esp),%esi
784258:	11 74 24 2c          	adc    %esi,0x2c(%esp)
78425c:	89 7c 24 30          	mov    %edi,0x30(%esp)
784260:	8b fa                	mov    %edx,%edi
784262:	0f ac f7 1f          	shrd   $0x1f,%esi,%edi
784266:	03 d2                	add    %edx,%edx
784268:	c1 ee 1f             	shr    $0x1f,%esi
78426b:	0b f2                	or     %edx,%esi
78426d:	33 74 24 2c          	xor    0x2c(%esp),%esi
784271:	33 7c 24 14          	xor    0x14(%esp),%edi
784275:	01 44 24 24          	add    %eax,0x24(%esp)
784279:	89 74 24 58          	mov    %esi,0x58(%esp)
78427d:	8b f1                	mov    %ecx,%esi
78427f:	11 4c 24 28          	adc    %ecx,0x28(%esp)
784283:	33 d2                	xor    %edx,%edx
784285:	0f a4 c1 1b          	shld   $0x1b,%eax,%ecx
784289:	c1 ee 05             	shr    $0x5,%esi
78428c:	0b d1                	or     %ecx,%edx
78428e:	c1 e0 1b             	shl    $0x1b,%eax
784291:	33 54 24 28          	xor    0x28(%esp),%edx
784295:	0b f0                	or     %eax,%esi
784297:	33 74 24 24          	xor    0x24(%esp),%esi
78429b:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
78429f:	8b 44 24 30          	mov    0x30(%esp),%eax
7842a3:	03 cd                	add    %ebp,%ecx
7842a5:	89 74 24 38          	mov    %esi,0x38(%esp)
7842a9:	8b f3                	mov    %ebx,%esi
7842ab:	13 c3                	adc    %ebx,%eax
7842ad:	89 54 24 3c          	mov    %edx,0x3c(%esp)
7842b1:	0f a4 eb 0e          	shld   $0xe,%ebp,%ebx
7842b5:	33 d2                	xor    %edx,%edx
7842b7:	c1 ee 12             	shr    $0x12,%esi
7842ba:	c1 e5 0e             	shl    $0xe,%ebp
7842bd:	0b d3                	or     %ebx,%edx
7842bf:	8b 5c 24 34          	mov    0x34(%esp),%ebx
7842c3:	0b f5                	or     %ebp,%esi
7842c5:	8b 6c 24 68          	mov    0x68(%esp),%ebp
7842c9:	33 f1                	xor    %ecx,%esi
7842cb:	33 d0                	xor    %eax,%edx
7842cd:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
7842d1:	01 5c 24 18          	add    %ebx,0x18(%esp)
7842d5:	8b cb                	mov    %ebx,%ecx
7842d7:	89 44 24 30          	mov    %eax,0x30(%esp)
7842db:	11 6c 24 20          	adc    %ebp,0x20(%esp)
7842df:	33 c0                	xor    %eax,%eax
7842e1:	0f ac eb 16          	shrd   $0x16,%ebp,%ebx
7842e5:	c1 e1 0a             	shl    $0xa,%ecx
7842e8:	c1 ed 16             	shr    $0x16,%ebp
7842eb:	0b c3                	or     %ebx,%eax
7842ed:	33 44 24 18          	xor    0x18(%esp),%eax
7842f1:	0b cd                	or     %ebp,%ecx
7842f3:	33 4c 24 20          	xor    0x20(%esp),%ecx
7842f7:	01 7c 24 24          	add    %edi,0x24(%esp)
7842fb:	8b 5c 24 58          	mov    0x58(%esp),%ebx
7842ff:	8b eb                	mov    %ebx,%ebp
784301:	11 5c 24 28          	adc    %ebx,0x28(%esp)
784305:	33 db                	xor    %ebx,%ebx
784307:	0f a4 7c 24 58 11    	shld   $0x11,%edi,0x58(%esp)
78430d:	0b 5c 24 58          	or     0x58(%esp),%ebx
784311:	33 5c 24 28          	xor    0x28(%esp),%ebx
784315:	c1 ed 0f             	shr    $0xf,%ebp
784318:	c1 e7 11             	shl    $0x11,%edi
78431b:	0b ef                	or     %edi,%ebp
78431d:	33 6c 24 24          	xor    0x24(%esp),%ebp
784321:	01 44 24 1c          	add    %eax,0x1c(%esp)
784325:	89 6c 24 10          	mov    %ebp,0x10(%esp)
784329:	8b e8                	mov    %eax,%ebp
78432b:	11 4c 24 30          	adc    %ecx,0x30(%esp)
78432f:	33 ff                	xor    %edi,%edi
784331:	0f ac c8 0f          	shrd   $0xf,%ecx,%eax
784335:	c1 e5 11             	shl    $0x11,%ebp
784338:	c1 e9 0f             	shr    $0xf,%ecx
78433b:	0b f8                	or     %eax,%edi
78433d:	33 7c 24 1c          	xor    0x1c(%esp),%edi
784341:	0b e9                	or     %ecx,%ebp
784343:	33 6c 24 30          	xor    0x30(%esp),%ebp
784347:	8b ce                	mov    %esi,%ecx
784349:	01 74 24 18          	add    %esi,0x18(%esp)
78434d:	89 7c 24 48          	mov    %edi,0x48(%esp)
784351:	8b 7c 24 20          	mov    0x20(%esp),%edi
784355:	13 fa                	adc    %edx,%edi
784357:	33 c0                	xor    %eax,%eax
784359:	0f ac d6 1c          	shrd   $0x1c,%edx,%esi
78435d:	c1 e1 04             	shl    $0x4,%ecx
784360:	c1 ea 1c             	shr    $0x1c,%edx
784363:	0b c6                	or     %esi,%eax
784365:	0b ca                	or     %edx,%ecx
784367:	89 7c 24 20          	mov    %edi,0x20(%esp)
78436b:	33 44 24 18          	xor    0x18(%esp),%eax
78436f:	8b 54 24 38          	mov    0x38(%esp),%edx
784373:	33 cf                	xor    %edi,%ecx
784375:	01 54 24 14          	add    %edx,0x14(%esp)
784379:	8b 74 24 2c          	mov    0x2c(%esp),%esi
78437d:	13 74 24 3c          	adc    0x3c(%esp),%esi
784381:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
784385:	0f ac 7c 24 38 19    	shrd   $0x19,%edi,0x38(%esp)
78438b:	89 74 24 2c          	mov    %esi,0x2c(%esp)
78438f:	8b f2                	mov    %edx,%esi
784391:	c1 ef 19             	shr    $0x19,%edi
784394:	33 d2                	xor    %edx,%edx
784396:	0b 54 24 38          	or     0x38(%esp),%edx
78439a:	33 54 24 14          	xor    0x14(%esp),%edx
78439e:	c1 e6 07             	shl    $0x7,%esi
7843a1:	0b f7                	or     %edi,%esi
7843a3:	89 54 24 50          	mov    %edx,0x50(%esp)
7843a7:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
7843ab:	33 f7                	xor    %edi,%esi
7843ad:	89 74 24 3c          	mov    %esi,0x3c(%esp)
7843b1:	8b 74 24 10          	mov    0x10(%esp),%esi
7843b5:	01 74 24 1c          	add    %esi,0x1c(%esp)
7843b9:	11 5c 24 30          	adc    %ebx,0x30(%esp)
7843bd:	01 54 24 18          	add    %edx,0x18(%esp)