470059:	5b                   	pop    %ebx
47005a:	8b e5                	mov    %ebp,%esp
47005c:	5d                   	pop    %ebp
47005d:	c2 08 00             	ret    $0x8
470060:	55                   	push   %ebp
470061:	8b ec                	mov    %esp,%ebp
470063:	8b 45 08             	mov    0x8(%ebp),%eax
470066:	53                   	push   %ebx
470067:	56                   	push   %esi
470068:	8b d9                	mov    %ecx,%ebx
47006a:	8b 40 04             	mov    0x4(%eax),%eax
47006d:	57                   	push   %edi
47006e:	8b 48 04             	mov    0x4(%eax),%ecx
470071:	8b 30                	mov    (%eax),%esi
470073:	e8 24 9c f9 ff       	call   0x409c9c
470078:	50                   	push   %eax
470079:	8b ce                	mov    %esi,%ecx
47007b:	e8 1c 9c f9 ff       	call   0x409c9c
470080:	50                   	push   %eax
470081:	e8 2e 88 01 00       	call   0x4888b4
470086:	8b f8                	mov    %eax,%edi
470088:	85 ff                	test   %edi,%edi
47008a:	79 14                	jns    0x4700a0
47008c:	8b 03                	mov    (%ebx),%eax
47008e:	f7 df                	neg    %edi
470090:	6a 00                	push   $0x0
470092:	57                   	push   %edi
470093:	8b 48 04             	mov    0x4(%eax),%ecx
470096:	03 cb                	add    %ebx,%ecx
470098:	e8 c4 fe fa ff       	call   0x41ff61
47009d:	33 ff                	xor    %edi,%edi
47009f:	47                   	inc    %edi
4700a0:	8b 75 0c             	mov    0xc(%ebp),%esi
4700a3:	8b ce                	mov    %esi,%ecx
4700a5:	e8 76 99 f9 ff       	call   0x409a20
4700aa:	89 3e                	mov    %edi,(%esi)
4700ac:	33 c0                	xor    %eax,%eax
4700ae:	5f                   	pop    %edi
4700af:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4700b6:	5e                   	pop    %esi
4700b7:	5b                   	pop    %ebx
4700b8:	5d                   	pop    %ebp
4700b9:	c2 08 00             	ret    $0x8
4700bc:	55                   	push   %ebp
4700bd:	8b ec                	mov    %esp,%ebp
4700bf:	8b 45 08             	mov    0x8(%ebp),%eax
4700c2:	53                   	push   %ebx
4700c3:	56                   	push   %esi
4700c4:	8b d9                	mov    %ecx,%ebx
4700c6:	8b 40 04             	mov    0x4(%eax),%eax
4700c9:	57                   	push   %edi
4700ca:	8b 48 04             	mov    0x4(%eax),%ecx
4700cd:	8b 30                	mov    (%eax),%esi
4700cf:	e8 c8 9b f9 ff       	call   0x409c9c
4700d4:	50                   	push   %eax
4700d5:	8b ce                	mov    %esi,%ecx
4700d7:	e8 c0 9b f9 ff       	call   0x409c9c
4700dc:	50                   	push   %eax
4700dd:	e8 de 89 01 00       	call   0x488ac0
4700e2:	8b f8                	mov    %eax,%edi
4700e4:	85 ff                	test   %edi,%edi
4700e6:	79 14                	jns    0x4700fc
4700e8:	8b 03                	mov    (%ebx),%eax
4700ea:	f7 df                	neg    %edi
4700ec:	6a 00                	push   $0x0
4700ee:	57                   	push   %edi
4700ef:	8b 48 04             	mov    0x4(%eax),%ecx
4700f2:	03 cb                	add    %ebx,%ecx
4700f4:	e8 68 fe fa ff       	call   0x41ff61
4700f9:	33 ff                	xor    %edi,%edi
4700fb:	47                   	inc    %edi
4700fc:	8b 75 0c             	mov    0xc(%ebp),%esi
4700ff:	8b ce                	mov    %esi,%ecx
470101:	e8 1a 99 f9 ff       	call   0x409a20
470106:	89 3e                	mov    %edi,(%esi)
470108:	33 c0                	xor    %eax,%eax
47010a:	5f                   	pop    %edi
47010b:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
470112:	5e                   	pop    %esi
470113:	5b                   	pop    %ebx
470114:	5d                   	pop    %ebp
470115:	c2 08 00             	ret    $0x8
470118:	55                   	push   %ebp
470119:	8b ec                	mov    %esp,%ebp
47011b:	8b 45 08             	mov    0x8(%ebp),%eax
47011e:	56                   	push   %esi
47011f:	57                   	push   %edi
470120:	8b 40 04             	mov    0x4(%eax),%eax
470123:	8b 48 04             	mov    0x4(%eax),%ecx
470126:	8b 30                	mov    (%eax),%esi
470128:	e8 6f 9b f9 ff       	call   0x409c9c
47012d:	50                   	push   %eax
47012e:	8b ce                	mov    %esi,%ecx
470130:	e8 67 9b f9 ff       	call   0x409c9c
470135:	50                   	push   %eax
470136:	e8 c0 8a 01 00       	call   0x488bfb
47013b:	8b 75 0c             	mov    0xc(%ebp),%esi
47013e:	8b f8                	mov    %eax,%edi
470140:	8b ce                	mov    %esi,%ecx
470142:	e8 d9 98 f9 ff       	call   0x409a20
470147:	89 3e                	mov    %edi,(%esi)
470149:	33 c0                	xor    %eax,%eax
47014b:	5f                   	pop    %edi
47014c:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
470153:	5e                   	pop    %esi
470154:	5d                   	pop    %ebp
470155:	c2 08 00             	ret    $0x8
470158:	55                   	push   %ebp
470159:	8b ec                	mov    %esp,%ebp
47015b:	83 e4 f8             	and    $0xfffffff8,%esp
47015e:	83 ec 10             	sub    $0x10,%esp
470161:	8d 0c 24             	lea    (%esp),%ecx
470164:	56                   	push   %esi
470165:	57                   	push   %edi
470166:	e8 5c 76 f9 ff       	call   0x4077c7
47016b:	8b 7d 08             	mov    0x8(%ebp),%edi
47016e:	83 7f 08 02          	cmpl   $0x2,0x8(%edi)
470172:	76 19                	jbe    0x47018d
470174:	8b 47 04             	mov    0x4(%edi),%eax
470177:	8b 70 08             	mov    0x8(%eax),%esi
47017a:	8b ce                	mov    %esi,%ecx
47017c:	e8 16 98 f9 ff       	call   0x409997
470181:	ff 76 08             	push   0x8(%esi)
470184:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
470188:	e8 1a 80 f9 ff       	call   0x4081a7
47018d:	8b 47 04             	mov    0x4(%edi),%eax
470190:	8b 70 04             	mov    0x4(%eax),%esi
470193:	8b ce                	mov    %esi,%ecx
470195:	e8 fd 97 f9 ff       	call   0x409997
47019a:	8b 46 08             	mov    0x8(%esi),%eax
47019d:	ff 74 24 08          	push   0x8(%esp)
4701a1:	8b 08                	mov    (%eax),%ecx
4701a3:	8b 47 04             	mov    0x4(%edi),%eax
4701a6:	51                   	push   %ecx
4701a7:	8b 08                	mov    (%eax),%ecx
4701a9:	e8 ee 9a f9 ff       	call   0x409c9c
4701ae:	50                   	push   %eax
4701af:	e8 90 8a 01 00       	call   0x488c44
4701b4:	8b 75 0c             	mov    0xc(%ebp),%esi
4701b7:	8b f8                	mov    %eax,%edi
4701b9:	8b ce                	mov    %esi,%ecx
4701bb:	e8 60 98 f9 ff       	call   0x409a20
4701c0:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4701c4:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4701cb:	89 3e                	mov    %edi,(%esi)
4701cd:	e8 92 58 f9 ff       	call   0x405a64
4701d2:	5f                   	pop    %edi
4701d3:	33 c0                	xor    %eax,%eax
4701d5:	5e                   	pop    %esi
4701d6:	8b e5                	mov    %ebp,%esp
4701d8:	5d                   	pop    %ebp
4701d9:	c2 08 00             	ret    $0x8
4701dc:	55                   	push   %ebp
4701dd:	8b ec                	mov    %esp,%ebp
4701df:	56                   	push   %esi
4701e0:	8b 75 08             	mov    0x8(%ebp),%esi
4701e3:	57                   	push   %edi
4701e4:	33 ff                	xor    %edi,%edi
4701e6:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
4701ea:	76 0d                	jbe    0x4701f9
4701ec:	8b 46 04             	mov    0x4(%esi),%eax
4701ef:	8b 48 04             	mov    0x4(%eax),%ecx
4701f2:	e8 c4 87 ff ff       	call   0x4689bb
4701f7:	8b f8                	mov    %eax,%edi
4701f9:	8b 4e 04             	mov    0x4(%esi),%ecx
4701fc:	8b 09                	mov    (%ecx),%ecx
4701fe:	e8 99 9a f9 ff       	call   0x409c9c
470203:	50                   	push   %eax
470204:	6a ff                	push   $0xffffffff
470206:	57                   	push   %edi
470207:	6a ff                	push   $0xffffffff
470209:	6a 00                	push   $0x0
47020b:	6a ff                	push   $0xffffffff
47020d:	6a 00                	push   $0x0
47020f:	e8 5e 29 f9 ff       	call   0x402b72
470214:	8b 75 0c             	mov    0xc(%ebp),%esi
470217:	8b f8                	mov    %eax,%edi
470219:	8b ce                	mov    %esi,%ecx
47021b:	e8 00 98 f9 ff       	call   0x409a20
470220:	89 3e                	mov    %edi,(%esi)
470222:	33 c0                	xor    %eax,%eax
470224:	5f                   	pop    %edi
470225:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47022c:	5e                   	pop    %esi
47022d:	5d                   	pop    %ebp
47022e:	c2 08 00             	ret    $0x8
470231:	55                   	push   %ebp
470232:	8b ec                	mov    %esp,%ebp
470234:	56                   	push   %esi
470235:	8b 75 08             	mov    0x8(%ebp),%esi
470238:	57                   	push   %edi
470239:	33 ff                	xor    %edi,%edi
47023b:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
47023f:	76 0d                	jbe    0x47024e
470241:	8b 46 04             	mov    0x4(%esi),%eax
470244:	8b 48 04             	mov    0x4(%eax),%ecx
470247:	e8 6f 87 ff ff       	call   0x4689bb
47024c:	8b f8                	mov    %eax,%edi
47024e:	8b 4e 04             	mov    0x4(%esi),%ecx
470251:	6a ff                	push   $0xffffffff
470253:	8b 09                	mov    (%ecx),%ecx
470255:	e8 42 9a f9 ff       	call   0x409c9c
47025a:	50                   	push   %eax
47025b:	57                   	push   %edi
47025c:	6a ff                	push   $0xffffffff
47025e:	6a 00                	push   $0x0
470260:	6a ff                	push   $0xffffffff
470262:	6a 00                	push   $0x0
470264:	e8 09 29 f9 ff       	call   0x402b72
470269:	8b 75 0c             	mov    0xc(%ebp),%esi
47026c:	8b f8                	mov    %eax,%edi
47026e:	8b ce                	mov    %esi,%ecx
470270:	e8 ab 97 f9 ff       	call   0x409a20
470275:	89 3e                	mov    %edi,(%esi)
470277:	33 c0                	xor    %eax,%eax
470279:	5f                   	pop    %edi
47027a:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
470281:	5e                   	pop    %esi
470282:	5d                   	pop    %ebp
470283:	c2 08 00             	ret    $0x8
470286:	55                   	push   %ebp
470287:	8b ec                	mov    %esp,%ebp
470289:	83 ec 14             	sub    $0x14,%esp
47028c:	53                   	push   %ebx
47028d:	56                   	push   %esi
47028e:	8b 75 08             	mov    0x8(%ebp),%esi
470291:	8d 4d ec             	lea    -0x14(%ebp),%ecx
470294:	57                   	push   %edi
470295:	8b 7e 08             	mov    0x8(%esi),%edi
470298:	e8 2a 75 f9 ff       	call   0x4077c7
47029d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4702a0:	8b cb                	mov    %ebx,%ecx
4702a2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4702a6:	c7 45 08 02 00 00 00 	movl   $0x2,0x8(%ebp)
4702ad:	e8 6e 97 f9 ff       	call   0x409a20
4702b2:	83 23 00             	andl   $0x0,(%ebx)
4702b5:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
4702bc:	83 ff 05             	cmp    $0x5,%edi
4702bf:	76 0e                	jbe    0x4702cf
4702c1:	8b 46 04             	mov    0x4(%esi),%eax
4702c4:	8b 48 14             	mov    0x14(%eax),%ecx
4702c7:	e8 d0 99 f9 ff       	call   0x409c9c
4702cc:	89 45 08             	mov    %eax,0x8(%ebp)
4702cf:	83 ff 04             	cmp    $0x4,%edi
4702d2:	76 24                	jbe    0x4702f8
4702d4:	8b 46 04             	mov    0x4(%esi),%eax
4702d7:	8b 40 10             	mov    0x10(%eax),%eax
4702da:	89 45 0c             	mov    %eax,0xc(%ebp)
4702dd:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
4702e1:	75 7a                	jne    0x47035d
4702e3:	8b c8                	mov    %eax,%ecx
4702e5:	e8 ad 96 f9 ff       	call   0x409997
4702ea:	8b 45 0c             	mov    0xc(%ebp),%eax
4702ed:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4702f0:	ff 70 08             	push   0x8(%eax)
4702f3:	e8 af 7e f9 ff       	call   0x4081a7
4702f8:	83 ff 03             	cmp    $0x3,%edi
4702fb:	76 0e                	jbe    0x47030b
4702fd:	8b 46 04             	mov    0x4(%esi),%eax
470300:	8b 48 0c             	mov    0xc(%eax),%ecx
470303:	e8 94 99 f9 ff       	call   0x409c9c
470308:	89 45 fc             	mov    %eax,-0x4(%ebp)
47030b:	83 ff 02             	cmp    $0x2,%edi
47030e:	76 0f                	jbe    0x47031f
470310:	8b 46 04             	mov    0x4(%esi),%eax
470313:	8b 48 08             	mov    0x8(%eax),%ecx
470316:	e8 81 99 f9 ff       	call   0x409c9c
47031b:	8b f8                	mov    %eax,%edi
47031d:	eb 03                	jmp    0x470322
47031f:	83 cf ff             	or     $0xffffffff,%edi
470322:	8b 56 04             	mov    0x4(%esi),%edx
470325:	8b 4a 04             	mov    0x4(%edx),%ecx
470328:	8b 32                	mov    (%edx),%esi
47032a:	e8 c9 99 f9 ff       	call   0x409cf8
47032f:	51                   	push   %ecx
470330:	51                   	push   %ecx
470331:	dd 1c 24             	fstpl  (%esp)
470334:	ff 75 08             	push   0x8(%ebp)
470337:	8b ce                	mov    %esi,%ecx
470339:	ff 75 fc             	push   -0x4(%ebp)
47033c:	ff 75 ec             	push   -0x14(%ebp)
47033f:	57                   	push   %edi
470340:	e8 57 99 f9 ff       	call   0x409c9c
470345:	50                   	push   %eax
470346:	e8 86 8e 01 00       	call   0x4891d1
47034b:	8b cb                	mov    %ebx,%ecx
47034d:	8b f0                	mov    %eax,%esi
47034f:	e8 cc 96 f9 ff       	call   0x409a20
470354:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
47035b:	89 33                	mov    %esi,(%ebx)
47035d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
470360:	e8 ff 56 f9 ff       	call   0x405a64
470365:	5f                   	pop    %edi
470366:	5e                   	pop    %esi
470367:	33 c0                	xor    %eax,%eax
470369:	5b                   	pop    %ebx
47036a:	8b e5                	mov    %ebp,%esp
47036c:	5d                   	pop    %ebp
47036d:	c2 08 00             	ret    $0x8
470370:	55                   	push   %ebp
470371:	8b ec                	mov    %esp,%ebp
470373:	83 e4 f8             	and    $0xfffffff8,%esp
470376:	83 ec 14             	sub    $0x14,%esp
470379:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
47037e:	53                   	push   %ebx
47037f:	56                   	push   %esi
470380:	57                   	push   %edi
470381:	8b 7d 08             	mov    0x8(%ebp),%edi
470384:	83 cb ff             	or     $0xffffffff,%ebx
470387:	89 5c 24 10          	mov    %ebx,0x10(%esp)
47038b:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
470392:	00
470393:	8b 77 08             	mov    0x8(%edi),%esi
470396:	83 fe 03             	cmp    $0x3,%esi
470399:	76 0d                	jbe    0x4703a8
47039b:	8b 47 04             	mov    0x4(%edi),%eax
47039e:	8b 48 0c             	mov    0xc(%eax),%ecx
4703a1:	e8 f6 98 f9 ff       	call   0x409c9c
4703a6:	8b d8                	mov    %eax,%ebx
4703a8:	83 fe 02             	cmp    $0x2,%esi
4703ab:	76 0f                	jbe    0x4703bc
4703ad:	8b 4f 04             	mov    0x4(%edi),%ecx
4703b0:	ff 71 08             	push   0x8(%ecx)
4703b3:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4703b7:	e8 e0 9a f9 ff       	call   0x409e9c
4703bc:	83 ec 10             	sub    $0x10,%esp
4703bf:	8d 44 24 20          	lea    0x20(%esp),%eax
4703c3:	8b cc                	mov    %esp,%ecx
4703c5:	50                   	push   %eax
4703c6:	83 61 08 00          	andl   $0x0,0x8(%ecx)
4703ca:	e8 f1 96 f9 ff       	call   0x409ac0
4703cf:	8b 47 04             	mov    0x4(%edi),%eax
4703d2:	8b 70 04             	mov    0x4(%eax),%esi
4703d5:	8b ce                	mov    %esi,%ecx
4703d7:	e8 bb 95 f9 ff       	call   0x409997
4703dc:	8b 46 08             	mov    0x8(%esi),%eax
4703df:	53                   	push   %ebx
4703e0:	8b 08                	mov    (%eax),%ecx
4703e2:	8b 47 04             	mov    0x4(%edi),%eax
4703e5:	51                   	push   %ecx
4703e6:	8b 08                	mov    (%eax),%ecx
4703e8:	e8 af 98 f9 ff       	call   0x409c9c
4703ed:	50                   	push   %eax
4703ee:	e8 bd 8e 01 00       	call   0x4892b0
4703f3:	8b 75 0c             	mov    0xc(%ebp),%esi
4703f6:	8b f8                	mov    %eax,%edi
4703f8:	8b ce                	mov    %esi,%ecx
4703fa:	e8 21 96 f9 ff       	call   0x409a20
4703ff:	8d 4c 24 10          	lea    0x10(%esp),%ecx
470403:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)