410116:	5f                   	pop    %edi
410117:	7d 03                	jge    0x41011c
410119:	89 5d a0             	mov    %ebx,-0x60(%ebp)
41011c:	8b 45 ec             	mov    -0x14(%ebp),%eax
41011f:	8d 55 c0             	lea    -0x40(%ebp),%edx
410122:	52                   	push   %edx
410123:	8d 55 80             	lea    -0x80(%ebp),%edx
410126:	52                   	push   %edx
410127:	c7 45 c0 18 00 00 00 	movl   $0x18,-0x40(%ebp)
41012e:	8b 08                	mov    (%eax),%ecx
410130:	50                   	push   %eax
410131:	ff 51 0c             	call   *0xc(%ecx)
410134:	85 c0                	test   %eax,%eax
410136:	7c 19                	jl     0x410151
410138:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41013b:	89 46 6c             	mov    %eax,0x6c(%esi)
41013e:	8b 45 cc             	mov    -0x34(%ebp),%eax
410141:	89 46 5c             	mov    %eax,0x5c(%esi)
410144:	8b 45 d0             	mov    -0x30(%ebp),%eax
410147:	89 46 60             	mov    %eax,0x60(%esi)
41014a:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
410151:	8b 45 ec             	mov    -0x14(%ebp),%eax
410154:	8b 08                	mov    (%eax),%ecx
410156:	50                   	push   %eax
410157:	ff 51 08             	call   *0x8(%ecx)
41015a:	8b 45 a0             	mov    -0x60(%ebp),%eax
41015d:	3b c3                	cmp    %ebx,%eax
41015f:	74 06                	je     0x410167
410161:	8b 08                	mov    (%eax),%ecx
410163:	50                   	push   %eax
410164:	ff 51 08             	call   *0x8(%ecx)
410167:	8d 45 d8             	lea    -0x28(%ebp),%eax
41016a:	50                   	push   %eax
41016b:	ff 15 f4 04 4b 00    	call   *0x4b04f4
410171:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410174:	8b 45 e8             	mov    -0x18(%ebp),%eax
410177:	5e                   	pop    %esi
410178:	5b                   	pop    %ebx
410179:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410180:	c9                   	leave
410181:	c3                   	ret
410182:	b8 7a 36 48 00       	mov    $0x48367a,%eax
410187:	e8 f0 7a 00 00       	call   0x417c7c
41018c:	83 ec 68             	sub    $0x68,%esp
41018f:	53                   	push   %ebx
410190:	56                   	push   %esi
410191:	57                   	push   %edi
410192:	ff 75 14             	push   0x14(%ebp)
410195:	8b f1                	mov    %ecx,%esi
410197:	8d 5e 4c             	lea    0x4c(%esi),%ebx
41019a:	53                   	push   %ebx
41019b:	68 9c 4c 49 00       	push   $0x494c9c
4101a0:	6a 03                	push   $0x3
4101a2:	33 ff                	xor    %edi,%edi
4101a4:	57                   	push   %edi
4101a5:	ff 75 08             	push   0x8(%ebp)
4101a8:	89 75 e0             	mov    %esi,-0x20(%ebp)
4101ab:	e8 47 e5 ff ff       	call   0x40e6f7
4101b0:	3b c7                	cmp    %edi,%eax
4101b2:	89 45 14             	mov    %eax,0x14(%ebp)
4101b5:	0f 8c ce 02 00 00    	jl     0x410489
4101bb:	8d 46 3c             	lea    0x3c(%esi),%eax
4101be:	50                   	push   %eax
4101bf:	8b ce                	mov    %esi,%ecx
4101c1:	89 7d f0             	mov    %edi,-0x10(%ebp)
4101c4:	89 7d ec             	mov    %edi,-0x14(%ebp)
4101c7:	89 7d 08             	mov    %edi,0x8(%ebp)
4101ca:	e8 2e e7 ff ff       	call   0x40e8fd
4101cf:	8b 06                	mov    (%esi),%eax
4101d1:	8b ce                	mov    %esi,%ecx
4101d3:	ff 90 c0 00 00 00    	call   *0xc0(%eax)
4101d9:	3b c7                	cmp    %edi,%eax
4101db:	89 45 dc             	mov    %eax,-0x24(%ebp)
4101de:	75 31                	jne    0x410211
4101e0:	8b 03                	mov    (%ebx),%eax
4101e2:	8b 08                	mov    (%eax),%ecx
4101e4:	83 c6 6c             	add    $0x6c,%esi
4101e7:	56                   	push   %esi
4101e8:	6a 01                	push   $0x1
4101ea:	50                   	push   %eax
4101eb:	ff 51 58             	call   *0x58(%ecx)
4101ee:	f6 46 02 02          	testb  $0x2,0x2(%esi)
4101f2:	74 1d                	je     0x410211
4101f4:	8b 55 e0             	mov    -0x20(%ebp),%edx
4101f7:	8b 03                	mov    (%ebx),%eax
4101f9:	8b 08                	mov    (%eax),%ecx
4101fb:	81 c2 c4 00 00 00    	add    $0xc4,%edx
410201:	52                   	push   %edx
410202:	50                   	push   %eax
410203:	ff 51 0c             	call   *0xc(%ecx)
410206:	3b c7                	cmp    %edi,%eax
410208:	89 45 14             	mov    %eax,0x14(%ebp)
41020b:	0f 8c 3f 02 00 00    	jl     0x410450
410211:	8b 75 0c             	mov    0xc(%ebp),%esi
410214:	3b f7                	cmp    %edi,%esi
410216:	74 63                	je     0x41027b
410218:	39 7d 10             	cmp    %edi,0x10(%ebp)
41021b:	0f 85 c9 00 00 00    	jne    0x4102ea
410221:	8b 03                	mov    (%ebx),%eax
410223:	8b 08                	mov    (%eax),%ecx
410225:	8d 55 08             	lea    0x8(%ebp),%edx
410228:	52                   	push   %edx
410229:	68 2c 64 49 00       	push   $0x49642c
41022e:	50                   	push   %eax
41022f:	ff 11                	call   *(%ecx)
410231:	85 c0                	test   %eax,%eax
410233:	7c 4b                	jl     0x410280
410235:	8b 06                	mov    (%esi),%eax
410237:	57                   	push   %edi
410238:	57                   	push   %edi
410239:	57                   	push   %edi
41023a:	6a 03                	push   $0x3
41023c:	8b ce                	mov    %esi,%ecx
41023e:	ff 50 50             	call   *0x50(%eax)
410241:	85 c0                	test   %eax,%eax
410243:	74 3b                	je     0x410280
410245:	8b 06                	mov    (%esi),%eax
410247:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41024a:	51                   	push   %ecx
41024b:	8d 4d 10             	lea    0x10(%ebp),%ecx
41024e:	51                   	push   %ecx
41024f:	6a ff                	push   $0xffffffff
410251:	57                   	push   %edi
410252:	8b ce                	mov    %esi,%ecx
410254:	89 7d 10             	mov    %edi,0x10(%ebp)
410257:	ff 50 50             	call   *0x50(%eax)
41025a:	8b 4d 08             	mov    0x8(%ebp),%ecx
41025d:	8b 11                	mov    (%ecx),%edx
41025f:	50                   	push   %eax
410260:	ff 75 10             	push   0x10(%ebp)
410263:	51                   	push   %ecx
410264:	ff 52 14             	call   *0x14(%edx)
410267:	89 45 14             	mov    %eax,0x14(%ebp)
41026a:	8b 45 08             	mov    0x8(%ebp),%eax
41026d:	8b 08                	mov    (%eax),%ecx
41026f:	50                   	push   %eax
410270:	ff 51 08             	call   *0x8(%ecx)
410273:	89 7d 08             	mov    %edi,0x8(%ebp)
410276:	e9 ab 01 00 00       	jmp    0x410426
41027b:	39 7d 10             	cmp    %edi,0x10(%ebp)
41027e:	75 6a                	jne    0x4102ea
410280:	8b 03                	mov    (%ebx),%eax
410282:	8b 08                	mov    (%eax),%ecx
410284:	8d 55 f0             	lea    -0x10(%ebp),%edx
410287:	52                   	push   %edx
410288:	68 1c 64 49 00       	push   $0x49641c
41028d:	50                   	push   %eax
41028e:	ff 11                	call   *(%ecx)
410290:	85 c0                	test   %eax,%eax
410292:	7c 56                	jl     0x4102ea
410294:	3b f7                	cmp    %edi,%esi
410296:	75 0e                	jne    0x4102a6
410298:	8b 45 f0             	mov    -0x10(%ebp),%eax
41029b:	8b 08                	mov    (%eax),%ecx
41029d:	50                   	push   %eax
41029e:	ff 51 20             	call   *0x20(%ecx)
4102a1:	89 45 14             	mov    %eax,0x14(%ebp)
4102a4:	eb 3c                	jmp    0x4102e2
4102a6:	57                   	push   %edi
4102a7:	68 00 10 00 00       	push   $0x1000
4102ac:	6a 01                	push   $0x1
4102ae:	56                   	push   %esi
4102af:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
4102b2:	e8 31 0c 04 00       	call   0x450ee8
4102b7:	8d 45 8c             	lea    -0x74(%ebp),%eax
4102ba:	50                   	push   %eax
4102bb:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4102be:	89 7d fc             	mov    %edi,-0x4(%ebp)
4102c1:	e8 b6 7a 02 00       	call   0x437d7c
4102c6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4102c9:	8b 08                	mov    (%eax),%ecx
4102cb:	8d 55 d4             	lea    -0x2c(%ebp),%edx
4102ce:	52                   	push   %edx
4102cf:	50                   	push   %eax
4102d0:	ff 51 14             	call   *0x14(%ecx)
4102d3:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4102d7:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
4102da:	89 45 14             	mov    %eax,0x14(%ebp)
4102dd:	e8 c1 0b 04 00       	call   0x450ea3
4102e2:	8b 45 f0             	mov    -0x10(%ebp),%eax
4102e5:	e9 36 01 00 00       	jmp    0x410420
4102ea:	8b 03                	mov    (%ebx),%eax
4102ec:	8b 08                	mov    (%eax),%ecx
4102ee:	8d 55 ec             	lea    -0x14(%ebp),%edx
4102f1:	52                   	push   %edx
4102f2:	68 2c 61 49 00       	push   $0x49612c
4102f7:	50                   	push   %eax
4102f8:	ff 11                	call   *(%ecx)
4102fa:	85 c0                	test   %eax,%eax
4102fc:	0f 8c 49 01 00 00    	jl     0x41044b
410302:	3b f7                	cmp    %edi,%esi
410304:	75 5e                	jne    0x410364
410306:	8d 45 0c             	lea    0xc(%ebp),%eax
410309:	50                   	push   %eax
41030a:	6a 01                	push   $0x1
41030c:	57                   	push   %edi
41030d:	89 7d 0c             	mov    %edi,0xc(%ebp)
410310:	ff 15 44 0b 4b 00    	call   *0x4b0b44
410316:	3b c7                	cmp    %edi,%eax
410318:	89 45 14             	mov    %eax,0x14(%ebp)
41031b:	0f 8c fc 00 00 00    	jl     0x41041d
410321:	8d 45 10             	lea    0x10(%ebp),%eax
410324:	50                   	push   %eax
410325:	57                   	push   %edi
410326:	68 12 10 00 00       	push   $0x1012
41032b:	ff 75 0c             	push   0xc(%ebp)
41032e:	89 7d 10             	mov    %edi,0x10(%ebp)
410331:	ff 15 40 0b 4b 00    	call   *0x4b0b40
410337:	3b c7                	cmp    %edi,%eax
410339:	89 45 14             	mov    %eax,0x14(%ebp)
41033c:	7c 18                	jl     0x410356
41033e:	8b 45 ec             	mov    -0x14(%ebp),%eax
410341:	ff 75 10             	push   0x10(%ebp)
410344:	8b 08                	mov    (%eax),%ecx
410346:	50                   	push   %eax
410347:	ff 51 14             	call   *0x14(%ecx)
41034a:	89 45 14             	mov    %eax,0x14(%ebp)
41034d:	8b 45 10             	mov    0x10(%ebp),%eax
410350:	8b 08                	mov    (%eax),%ecx
410352:	50                   	push   %eax
410353:	ff 51 08             	call   *0x8(%ecx)
410356:	8b 45 0c             	mov    0xc(%ebp),%eax
410359:	8b 08                	mov    (%eax),%ecx
41035b:	50                   	push   %eax
41035c:	ff 51 08             	call   *0x8(%ecx)
41035f:	e9 b9 00 00 00       	jmp    0x41041d
410364:	39 7d 10             	cmp    %edi,0x10(%ebp)
410367:	0f 84 a9 00 00 00    	je     0x410416
41036d:	8b 06                	mov    (%esi),%eax
41036f:	8b ce                	mov    %esi,%ecx
410371:	ff 50 30             	call   *0x30(%eax)
410374:	3b d7                	cmp    %edi,%edx
410376:	89 45 d4             	mov    %eax,-0x2c(%ebp)
410379:	77 37                	ja     0x4103b2
41037b:	72 05                	jb     0x410382
41037d:	83 f8 ff             	cmp    $0xffffffff,%eax
410380:	73 30                	jae    0x4103b2
410382:	50                   	push   %eax
410383:	57                   	push   %edi
410384:	ff 15 58 03 4b 00    	call   *0x4b0358
41038a:	3b c7                	cmp    %edi,%eax
41038c:	89 45 10             	mov    %eax,0x10(%ebp)
41038f:	74 21                	je     0x4103b2
410391:	50                   	push   %eax
410392:	ff 15 40 03 4b 00    	call   *0x4b0340
410398:	3b c7                	cmp    %edi,%eax
41039a:	74 16                	je     0x4103b2
41039c:	ff 75 d4             	push   -0x2c(%ebp)
41039f:	8b 16                	mov    (%esi),%edx
4103a1:	50                   	push   %eax
4103a2:	8b ce                	mov    %esi,%ecx
4103a4:	ff 52 34             	call   *0x34(%edx)
4103a7:	ff 75 10             	push   0x10(%ebp)
4103aa:	ff 15 44 03 4b 00    	call   *0x4b0344
4103b0:	eb 0a                	jmp    0x4103bc
4103b2:	c7 45 14 0e 00 07 80 	movl   $0x8007000e,0x14(%ebp)
4103b9:	89 7d 10             	mov    %edi,0x10(%ebp)
4103bc:	39 7d 10             	cmp    %edi,0x10(%ebp)
4103bf:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4103c2:	74 59                	je     0x41041d
4103c4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4103c7:	50                   	push   %eax
4103c8:	6a 01                	push   $0x1
4103ca:	ff 75 10             	push   0x10(%ebp)
4103cd:	ff 15 44 0b 4b 00    	call   *0x4b0b44
4103d3:	3b c7                	cmp    %edi,%eax
4103d5:	89 45 14             	mov    %eax,0x14(%ebp)
4103d8:	7c 43                	jl     0x41041d
4103da:	8d 45 e8             	lea    -0x18(%ebp),%eax
4103dd:	50                   	push   %eax
4103de:	57                   	push   %edi
4103df:	57                   	push   %edi
4103e0:	6a 12                	push   $0x12
4103e2:	57                   	push   %edi
4103e3:	ff 75 e4             	push   -0x1c(%ebp)
4103e6:	89 7d e8             	mov    %edi,-0x18(%ebp)
4103e9:	ff 15 3c 0b 4b 00    	call   *0x4b0b3c
4103ef:	3b c7                	cmp    %edi,%eax
4103f1:	89 45 14             	mov    %eax,0x14(%ebp)
4103f4:	7c 18                	jl     0x41040e
4103f6:	8b 45 ec             	mov    -0x14(%ebp),%eax
4103f9:	ff 75 e8             	push   -0x18(%ebp)
4103fc:	8b 08                	mov    (%eax),%ecx
4103fe:	50                   	push   %eax
4103ff:	ff 51 18             	call   *0x18(%ecx)
410402:	89 45 14             	mov    %eax,0x14(%ebp)
410405:	8b 45 e8             	mov    -0x18(%ebp),%eax
410408:	8b 08                	mov    (%eax),%ecx
41040a:	50                   	push   %eax
41040b:	ff 51 08             	call   *0x8(%ecx)
41040e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
410411:	e9 43 ff ff ff       	jmp    0x410359
410416:	c7 45 14 ff ff 00 80 	movl   $0x8000ffff,0x14(%ebp)
41041d:	8b 45 ec             	mov    -0x14(%ebp),%eax
410420:	8b 08                	mov    (%eax),%ecx
410422:	50                   	push   %eax
410423:	ff 51 08             	call   *0x8(%ecx)
410426:	39 7d 14             	cmp    %edi,0x14(%ebp)
410429:	7c 25                	jl     0x410450
41042b:	39 7d dc             	cmp    %edi,-0x24(%ebp)
41042e:	75 1b                	jne    0x41044b
410430:	8b 4d e0             	mov    -0x20(%ebp),%ecx
410433:	f6 41 6e 02          	testb  $0x2,0x6e(%ecx)
410437:	75 12                	jne    0x41044b
410439:	8b 03                	mov    (%ebx),%eax
41043b:	8b 10                	mov    (%eax),%edx
41043d:	81 c1 c4 00 00 00    	add    $0xc4,%ecx
410443:	51                   	push   %ecx
410444:	50                   	push   %eax
410445:	ff 52 0c             	call   *0xc(%edx)
410448:	89 45 14             	mov    %eax,0x14(%ebp)
41044b:	39 7d 14             	cmp    %edi,0x14(%ebp)
41044e:	7d 18                	jge    0x410468
410450:	8b 03                	mov    (%ebx),%eax
410452:	3b c7                	cmp    %edi,%eax
410454:	74 12                	je     0x410468
410456:	8b 08                	mov    (%eax),%ecx
410458:	6a 01                	push   $0x1
41045a:	50                   	push   %eax
41045b:	ff 51 18             	call   *0x18(%ecx)
41045e:	8b 03                	mov    (%ebx),%eax
410460:	8b 08                	mov    (%eax),%ecx
410462:	50                   	push   %eax
410463:	ff 51 08             	call   *0x8(%ecx)
410466:	89 3b                	mov    %edi,(%ebx)
410468:	8b 45 08             	mov    0x8(%ebp),%eax
41046b:	3b c7                	cmp    %edi,%eax
41046d:	74 06                	je     0x410475
41046f:	8b 08                	mov    (%eax),%ecx
410471:	50                   	push   %eax
410472:	ff 51 08             	call   *0x8(%ecx)
410475:	39 7d dc             	cmp    %edi,-0x24(%ebp)
410478:	74 0c                	je     0x410486
41047a:	39 7d 14             	cmp    %edi,0x14(%ebp)
41047d:	7c 07                	jl     0x410486
41047f:	c7 45 14 01 00 00 00 	movl   $0x1,0x14(%ebp)
410486:	8b 45 14             	mov    0x14(%ebp),%eax
410489:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41048c:	5f                   	pop    %edi
41048d:	5e                   	pop    %esi
41048e:	5b                   	pop    %ebx
41048f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410496:	c9                   	leave
410497:	c2 10 00             	ret    $0x10
41049a:	55                   	push   %ebp
41049b:	8b ec                	mov    %esp,%ebp
41049d:	53                   	push   %ebx
41049e:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4104a1:	84 db                	test   %bl,%bl
4104a3:	56                   	push   %esi