463034:	8b 30                	mov    (%eax),%esi
463036:	8b ce                	mov    %esi,%ecx
463038:	e8 2f 63 fa ff       	call   0x40936c
46303d:	8b 46 08             	mov    0x8(%esi),%eax
463040:	83 ec 10             	sub    $0x10,%esp
463043:	8b cc                	mov    %esp,%ecx
463045:	ff 30                	push   (%eax)
463047:	e8 cd 9d fa ff       	call   0x40ce19
46304c:	8d 44 24 60          	lea    0x60(%esp),%eax
463050:	50                   	push   %eax
463051:	8d 44 24 44          	lea    0x44(%esp),%eax
463055:	50                   	push   %eax
463056:	8d 44 24 58          	lea    0x58(%esp),%eax
46305a:	50                   	push   %eax
46305b:	e8 2a 0e 00 00       	call   0x463e8a
463060:	8b 44 24 30          	mov    0x30(%esp),%eax
463064:	83 ec 10             	sub    $0x10,%esp
463067:	8b cc                	mov    %esp,%ecx
463069:	89 01                	mov    %eax,(%ecx)
46306b:	8b 44 24 44          	mov    0x44(%esp),%eax
46306f:	89 41 04             	mov    %eax,0x4(%ecx)
463072:	8b 44 24 48          	mov    0x48(%esp),%eax
463076:	89 41 08             	mov    %eax,0x8(%ecx)
463079:	8b 44 24 4c          	mov    0x4c(%esp),%eax
46307d:	89 41 0c             	mov    %eax,0xc(%ecx)
463080:	ff 00                	incl   (%eax)
463082:	8d 44 24 2c          	lea    0x2c(%esp),%eax
463086:	50                   	push   %eax
463087:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46308b:	50                   	push   %eax
46308c:	e8 75 0b 00 00       	call   0x463c06
463091:	84 c0                	test   %al,%al
463093:	75 06                	jne    0x46309b
463095:	6a 00                	push   $0x0
463097:	6a 02                	push   $0x2
463099:	eb 22                	jmp    0x4630bd
46309b:	83 7c 24 44 00       	cmpl   $0x0,0x44(%esp)
4630a0:	74 32                	je     0x4630d4
4630a2:	8d 44 24 10          	lea    0x10(%esp),%eax
4630a6:	50                   	push   %eax
4630a7:	ff 74 24 1c          	push   0x1c(%esp)
4630ab:	ff 74 24 48          	push   0x48(%esp)
4630af:	ff 15 2c d0 48 00    	call   *0x48d02c
4630b5:	85 c0                	test   %eax,%eax
4630b7:	74 15                	je     0x4630ce
4630b9:	6a 00                	push   $0x0
4630bb:	6a 03                	push   $0x3
4630bd:	8b 07                	mov    (%edi),%eax
4630bf:	8b 48 04             	mov    0x4(%eax),%ecx
4630c2:	03 cf                	add    %edi,%ecx
4630c4:	e8 83 9e fe ff       	call   0x44cf4c
4630c9:	e9 bf 00 00 00       	jmp    0x46318d
4630ce:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4630d2:	eb 04                	jmp    0x4630d8
4630d4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4630d8:	8d 44 24 14          	lea    0x14(%esp),%eax
4630dc:	50                   	push   %eax
4630dd:	8b 44 24 20          	mov    0x20(%esp),%eax
4630e1:	0d 19 00 02 00       	or     $0x20019,%eax
4630e6:	50                   	push   %eax
4630e7:	33 f6                	xor    %esi,%esi
4630e9:	56                   	push   %esi
4630ea:	ff 74 24 5c          	push   0x5c(%esp)
4630ee:	51                   	push   %ecx
4630ef:	ff 15 20 d0 48 00    	call   *0x48d020
4630f5:	56                   	push   %esi
4630f6:	85 c0                	test   %eax,%eax
4630f8:	74 20                	je     0x46311a
4630fa:	8b 07                	mov    (%edi),%eax
4630fc:	6a 01                	push   $0x1
4630fe:	8b 48 04             	mov    0x4(%eax),%ecx
463101:	03 cf                	add    %edi,%ecx
463103:	e8 44 9e fe ff       	call   0x44cf4c
463108:	39 74 24 10          	cmp    %esi,0x10(%esp)
46310c:	74 7f                	je     0x46318d
46310e:	ff 74 24 10          	push   0x10(%esp)
463112:	ff 15 24 d0 48 00    	call   *0x48d024
463118:	eb 73                	jmp    0x46318d
46311a:	8b 43 04             	mov    0x4(%ebx),%eax
46311d:	56                   	push   %esi
46311e:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
463122:	51                   	push   %ecx
463123:	56                   	push   %esi
463124:	8d 4c 24 30          	lea    0x30(%esp),%ecx
463128:	51                   	push   %ecx
463129:	ff 74 24 3c          	push   0x3c(%esp)
46312d:	8b 48 04             	mov    0x4(%eax),%ecx
463130:	e8 51 a1 fa ff       	call   0x40d286
463135:	48                   	dec    %eax
463136:	50                   	push   %eax
463137:	ff 74 24 30          	push   0x30(%esp)
46313b:	ff 15 04 d0 48 00    	call   *0x48d004
463141:	85 c0                	test   %eax,%eax
463143:	74 11                	je     0x463156
463145:	8b 07                	mov    (%edi),%eax
463147:	56                   	push   %esi
463148:	8b 48 04             	mov    0x4(%eax),%ecx
46314b:	6a ff                	push   $0xffffffff
46314d:	03 cf                	add    %edi,%ecx
46314f:	e8 f8 9d fe ff       	call   0x44cf4c
463154:	eb 1e                	jmp    0x463174
463156:	8b 4d 0c             	mov    0xc(%ebp),%ecx
463159:	8d 44 24 28          	lea    0x28(%esp),%eax
46315d:	50                   	push   %eax
46315e:	e8 2a 6c fe ff       	call   0x449d8d
463163:	8b 07                	mov    (%edi),%eax
463165:	56                   	push   %esi
463166:	8b 48 04             	mov    0x4(%eax),%ecx
463169:	ff 74 24 28          	push   0x28(%esp)
46316d:	03 cf                	add    %edi,%ecx
46316f:	e8 ad 01 fa ff       	call   0x403321
463174:	ff 74 24 14          	push   0x14(%esp)
463178:	8b 35 24 d0 48 00    	mov    0x48d024,%esi
46317e:	ff d6                	call   *%esi
463180:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
463185:	74 06                	je     0x46318d
463187:	ff 74 24 10          	push   0x10(%esp)
46318b:	ff d6                	call   *%esi
46318d:	8d 4c 24 50          	lea    0x50(%esp),%ecx
463191:	e8 a1 99 fa ff       	call   0x40cb37
463196:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46319a:	e8 98 99 fa ff       	call   0x40cb37
46319f:	8d 4c 24 40          	lea    0x40(%esp),%ecx
4631a3:	e8 8f 99 fa ff       	call   0x40cb37
4631a8:	8d 4c 24 28          	lea    0x28(%esp),%ecx
4631ac:	e8 31 16 fa ff       	call   0x4047e2
4631b1:	5f                   	pop    %edi
4631b2:	5e                   	pop    %esi
4631b3:	33 c0                	xor    %eax,%eax
4631b5:	5b                   	pop    %ebx
4631b6:	8b e5                	mov    %ebp,%esp
4631b8:	5d                   	pop    %ebp
4631b9:	c2 08 00             	ret    $0x8
4631bc:	55                   	push   %ebp
4631bd:	8b ec                	mov    %esp,%ebp
4631bf:	83 e4 f8             	and    $0xfffffff8,%esp
4631c2:	83 ec 4c             	sub    $0x4c,%esp
4631c5:	53                   	push   %ebx
4631c6:	56                   	push   %esi
4631c7:	57                   	push   %edi
4631c8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4631cb:	8b d9                	mov    %ecx,%ebx
4631cd:	68 00 dc 49 00       	push   $0x49dc00
4631d2:	8b cf                	mov    %edi,%ecx
4631d4:	e8 e0 9b fa ff       	call   0x40cdb9
4631d9:	8d 4c 24 38          	lea    0x38(%esp),%ecx
4631dd:	e8 15 a6 fa ff       	call   0x40d7f7
4631e2:	8d 4c 24 28          	lea    0x28(%esp),%ecx
4631e6:	e8 0c a6 fa ff       	call   0x40d7f7
4631eb:	8d 4c 24 48          	lea    0x48(%esp),%ecx
4631ef:	e8 03 a6 fa ff       	call   0x40d7f7
4631f4:	8b 45 08             	mov    0x8(%ebp),%eax
4631f7:	8b 40 04             	mov    0x4(%eax),%eax
4631fa:	8b 30                	mov    (%eax),%esi
4631fc:	8b ce                	mov    %esi,%ecx
4631fe:	e8 69 61 fa ff       	call   0x40936c
463203:	8b 56 08             	mov    0x8(%esi),%edx
463206:	83 ec 10             	sub    $0x10,%esp
463209:	8b 02                	mov    (%edx),%eax
46320b:	8b cc                	mov    %esp,%ecx
46320d:	89 01                	mov    %eax,(%ecx)
46320f:	8b 42 04             	mov    0x4(%edx),%eax
463212:	89 41 04             	mov    %eax,0x4(%ecx)
463215:	8b 42 08             	mov    0x8(%edx),%eax
463218:	89 41 08             	mov    %eax,0x8(%ecx)
46321b:	8b 42 0c             	mov    0xc(%edx),%eax
46321e:	89 41 0c             	mov    %eax,0xc(%ecx)
463221:	ff 00                	incl   (%eax)
463223:	8d 44 24 58          	lea    0x58(%esp),%eax
463227:	50                   	push   %eax
463228:	8d 44 24 3c          	lea    0x3c(%esp),%eax
46322c:	50                   	push   %eax
46322d:	8d 44 24 50          	lea    0x50(%esp),%eax
463231:	50                   	push   %eax
463232:	e8 53 0c 00 00       	call   0x463e8a
463237:	8b 44 24 28          	mov    0x28(%esp),%eax
46323b:	83 ec 10             	sub    $0x10,%esp
46323e:	8b cc                	mov    %esp,%ecx
463240:	89 01                	mov    %eax,(%ecx)
463242:	8b 44 24 3c          	mov    0x3c(%esp),%eax
463246:	89 41 04             	mov    %eax,0x4(%ecx)
463249:	8b 44 24 40          	mov    0x40(%esp),%eax
46324d:	89 41 08             	mov    %eax,0x8(%ecx)
463250:	8b 44 24 44          	mov    0x44(%esp),%eax
463254:	89 41 0c             	mov    %eax,0xc(%ecx)
463257:	ff 00                	incl   (%eax)
463259:	8d 44 24 30          	lea    0x30(%esp),%eax
46325d:	50                   	push   %eax
46325e:	8d 44 24 2c          	lea    0x2c(%esp),%eax
463262:	50                   	push   %eax
463263:	e8 9e 09 00 00       	call   0x463c06
463268:	84 c0                	test   %al,%al
46326a:	75 09                	jne    0x463275
46326c:	6a 00                	push   $0x0
46326e:	6a 02                	push   $0x2
463270:	e9 80 00 00 00       	jmp    0x4632f5
463275:	33 f6                	xor    %esi,%esi
463277:	89 74 24 14          	mov    %esi,0x14(%esp)
46327b:	39 74 24 3c          	cmp    %esi,0x3c(%esp)
46327f:	74 30                	je     0x4632b1
463281:	8d 44 24 14          	lea    0x14(%esp),%eax
463285:	50                   	push   %eax
463286:	ff 74 24 1c          	push   0x1c(%esp)
46328a:	ff 74 24 40          	push   0x40(%esp)
46328e:	ff 15 2c d0 48 00    	call   *0x48d02c
463294:	85 c0                	test   %eax,%eax
463296:	74 13                	je     0x4632ab
463298:	56                   	push   %esi
463299:	50                   	push   %eax
46329a:	8b 03                	mov    (%ebx),%eax
46329c:	8b 48 04             	mov    0x4(%eax),%ecx
46329f:	03 cb                	add    %ebx,%ecx
4632a1:	e8 7b 00 fa ff       	call   0x403321
4632a6:	56                   	push   %esi
4632a7:	6a 03                	push   $0x3
4632a9:	eb 4a                	jmp    0x4632f5
4632ab:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4632af:	eb 04                	jmp    0x4632b5
4632b1:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4632b5:	8d 44 24 10          	lea    0x10(%esp),%eax
4632b9:	50                   	push   %eax
4632ba:	8b 44 24 24          	mov    0x24(%esp),%eax
4632be:	0d 19 00 02 00       	or     $0x20019,%eax
4632c3:	50                   	push   %eax
4632c4:	56                   	push   %esi
4632c5:	ff 74 24 54          	push   0x54(%esp)
4632c9:	51                   	push   %ecx
4632ca:	ff 15 20 d0 48 00    	call   *0x48d020
4632d0:	85 c0                	test   %eax,%eax
4632d2:	74 32                	je     0x463306
4632d4:	56                   	push   %esi
4632d5:	50                   	push   %eax
4632d6:	8b 03                	mov    (%ebx),%eax
4632d8:	8b 48 04             	mov    0x4(%eax),%ecx
4632db:	03 cb                	add    %ebx,%ecx
4632dd:	e8 3f 00 fa ff       	call   0x403321
4632e2:	39 74 24 14          	cmp    %esi,0x14(%esp)
4632e6:	74 0a                	je     0x4632f2
4632e8:	ff 74 24 14          	push   0x14(%esp)
4632ec:	ff 15 24 d0 48 00    	call   *0x48d024
4632f2:	56                   	push   %esi
4632f3:	6a 01                	push   $0x1
4632f5:	8b 03                	mov    (%ebx),%eax
4632f7:	8b 48 04             	mov    0x4(%eax),%ecx
4632fa:	03 cb                	add    %ebx,%ecx
4632fc:	e8 4b 9c fe ff       	call   0x44cf4c
463301:	e9 0d 03 00 00       	jmp    0x463613
463306:	8b 45 08             	mov    0x8(%ebp),%eax
463309:	8b 40 04             	mov    0x4(%eax),%eax
46330c:	8b 70 04             	mov    0x4(%eax),%esi
46330f:	8b ce                	mov    %esi,%ecx
463311:	e8 56 60 fa ff       	call   0x40936c
463316:	8b 46 08             	mov    0x8(%esi),%eax
463319:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
46331d:	51                   	push   %ecx
46331e:	33 f6                	xor    %esi,%esi
463320:	56                   	push   %esi
463321:	8d 4c 24 24          	lea    0x24(%esp),%ecx
463325:	51                   	push   %ecx
463326:	56                   	push   %esi
463327:	ff 30                	push   (%eax)
463329:	ff 74 24 24          	push   0x24(%esp)
46332d:	ff 15 28 d0 48 00    	call   *0x48d028
463333:	56                   	push   %esi
463334:	85 c0                	test   %eax,%eax
463336:	74 15                	je     0x46334d
463338:	50                   	push   %eax
463339:	8b 03                	mov    (%ebx),%eax
46333b:	8b 48 04             	mov    0x4(%eax),%ecx
46333e:	03 cb                	add    %ebx,%ecx
463340:	e8 dc ff f9 ff       	call   0x403321
463345:	56                   	push   %esi
463346:	6a ff                	push   $0xffffffff
463348:	e9 a1 02 00 00       	jmp    0x4635ee
46334d:	8b 03                	mov    (%ebx),%eax
46334f:	ff 74 24 20          	push   0x20(%esp)
463353:	8b 48 04             	mov    0x4(%eax),%ecx
463356:	03 cb                	add    %ebx,%ecx
463358:	e8 c4 ff f9 ff       	call   0x403321
46335d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
463361:	85 c0                	test   %eax,%eax
463363:	0f 84 82 02 00 00    	je     0x4635eb
463369:	6a 02                	push   $0x2
46336b:	5a                   	pop    %edx
46336c:	3b c2                	cmp    %edx,%eax
46336e:	0f 86 e7 01 00 00    	jbe    0x46355b
463374:	83 f8 03             	cmp    $0x3,%eax
463377:	0f 84 6b 01 00 00    	je     0x4634e8
46337d:	6a 04                	push   $0x4
46337f:	59                   	pop    %ecx
463380:	3b c1                	cmp    %ecx,%eax
463382:	0f 84 14 01 00 00    	je     0x46349c
463388:	83 f8 07             	cmp    $0x7,%eax
46338b:	74 60                	je     0x4633ed
46338d:	83 f8 0b             	cmp    $0xb,%eax
463390:	0f 85 55 02 00 00    	jne    0x4635eb
463396:	8b 45 08             	mov    0x8(%ebp),%eax
463399:	c7 44 24 0c 08 00 00 	movl   $0x8,0xc(%esp)
4633a0:	00
4633a1:	8b 40 04             	mov    0x4(%eax),%eax
4633a4:	8b 70 04             	mov    0x4(%eax),%esi
4633a7:	8b ce                	mov    %esi,%ecx
4633a9:	e8 be 5f fa ff       	call   0x40936c
4633ae:	8d 44 24 0c          	lea    0xc(%esp),%eax
4633b2:	50                   	push   %eax
4633b3:	8d 44 24 24          	lea    0x24(%esp),%eax
4633b7:	50                   	push   %eax
4633b8:	8b 46 08             	mov    0x8(%esi),%eax
4633bb:	33 ff                	xor    %edi,%edi
4633bd:	57                   	push   %edi
4633be:	57                   	push   %edi
4633bf:	ff 30                	push   (%eax)
4633c1:	ff 74 24 24          	push   0x24(%esp)
4633c5:	ff 15 28 d0 48 00    	call   *0x48d028
4633cb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4633ce:	8b 74 24 20          	mov    0x20(%esp),%esi
4633d2:	8b 7c 24 24          	mov    0x24(%esp),%edi
4633d6:	8b cb                	mov    %ebx,%ecx
4633d8:	e8 43 f8 fa ff       	call   0x412c20
4633dd:	6a 02                	push   $0x2
4633df:	58                   	pop    %eax
4633e0:	89 43 0c             	mov    %eax,0xc(%ebx)
4633e3:	89 33                	mov    %esi,(%ebx)
4633e5:	89 7b 04             	mov    %edi,0x4(%ebx)
4633e8:	e9 0d 02 00 00       	jmp    0x4635fa
4633ed:	8b 44 24 0c          	mov    0xc(%esp),%eax
4633f1:	d1 e8                	shr    $1,%eax
4633f3:	33 c9                	xor    %ecx,%ecx
4633f5:	03 c2                	add    %edx,%eax
4633f7:	f7 e2                	mul    %edx
4633f9:	0f 90 c1             	seto   %cl
4633fc:	f7 d9                	neg    %ecx
4633fe:	0b c8                	or     %eax,%ecx
463400:	51                   	push   %ecx
463401:	e8 e4 c0 fb ff       	call   0x41f4ea
463406:	89 44 24 24          	mov    %eax,0x24(%esp)
46340a:	8b 45 08             	mov    0x8(%ebp),%eax
46340d:	59                   	pop    %ecx
46340e:	8b 48 04             	mov    0x4(%eax),%ecx
463411:	8b 71 04             	mov    0x4(%ecx),%esi
463414:	8b ce                	mov    %esi,%ecx
463416:	e8 51 5f fa ff       	call   0x40936c
46341b:	8b 4e 08             	mov    0x8(%esi),%ecx
46341e:	8b 74 24 20          	mov    0x20(%esp),%esi
463422:	8d 44 24 0c          	lea    0xc(%esp),%eax
463426:	50                   	push   %eax
463427:	56                   	push   %esi
463428:	33 c0                	xor    %eax,%eax
46342a:	50                   	push   %eax
46342b:	50                   	push   %eax