4590a8:	8b 7b 08             	mov    0x8(%ebx),%edi
4590ab:	8b ce                	mov    %esi,%ecx
4590ad:	e8 ba 02 fb ff       	call   0x40936c
4590b2:	8b 46 08             	mov    0x8(%esi),%eax
4590b5:	6a 3f                	push   $0x3f
4590b7:	ff 30                	push   (%eax)
4590b9:	8d 84 24 3c 03 00 00 	lea    0x33c(%esp),%eax
4590c0:	50                   	push   %eax
4590c1:	e8 e6 92 fc ff       	call   0x4223ac
4590c6:	33 c0                	xor    %eax,%eax
4590c8:	66 89 84 24 be 03 00 	mov    %ax,0x3be(%esp)
4590cf:	00
4590d0:	8b 43 04             	mov    0x4(%ebx),%eax
4590d3:	83 c4 0c             	add    $0xc,%esp
4590d6:	8b 70 04             	mov    0x4(%eax),%esi
4590d9:	8b ce                	mov    %esi,%ecx
4590db:	e8 8c 02 fb ff       	call   0x40936c
4590e0:	8b 46 08             	mov    0x8(%esi),%eax
4590e3:	68 ff 00 00 00       	push   $0xff
4590e8:	ff 30                	push   (%eax)
4590ea:	8d 84 24 38 01 00 00 	lea    0x138(%esp),%eax
4590f1:	50                   	push   %eax
4590f2:	e8 b5 92 fc ff       	call   0x4223ac
4590f7:	33 c0                	xor    %eax,%eax
4590f9:	66 89 84 24 3a 03 00 	mov    %ax,0x33a(%esp)
459100:	00
459101:	8b 43 04             	mov    0x4(%ebx),%eax
459104:	83 c4 0c             	add    $0xc,%esp
459107:	8b 48 08             	mov    0x8(%eax),%ecx
45910a:	e8 77 41 fb ff       	call   0x40d286
45910f:	69 c0 e8 03 00 00    	imul   $0x3e8,%eax,%eax
459115:	89 84 24 30 03 00 00 	mov    %eax,0x330(%esp)
45911c:	83 ff 03             	cmp    $0x3,%edi
45911f:	76 14                	jbe    0x459135
459121:	8b 43 04             	mov    0x4(%ebx),%eax
459124:	8b 48 0c             	mov    0xc(%eax),%ecx
459127:	e8 5a 41 fb ff       	call   0x40d286
45912c:	89 84 24 b4 03 00 00 	mov    %eax,0x3b4(%esp)
459133:	eb 08                	jmp    0x45913d
459135:	83 a4 24 b4 03 00 00 	andl   $0x0,0x3b4(%esp)
45913c:	00
45913d:	8d 44 24 10          	lea    0x10(%esp),%eax
459141:	50                   	push   %eax
459142:	6a 01                	push   $0x1
459144:	ff 15 a4 d4 48 00    	call   *0x48d4a4
45914a:	5f                   	pop    %edi
45914b:	5e                   	pop    %esi
45914c:	33 c0                	xor    %eax,%eax
45914e:	5b                   	pop    %ebx
45914f:	8b e5                	mov    %ebp,%esp
459151:	5d                   	pop    %ebp
459152:	c2 08 00             	ret    $0x8
459155:	55                   	push   %ebp
459156:	8b ec                	mov    %esp,%ebp
459158:	51                   	push   %ecx
459159:	51                   	push   %ecx
45915a:	8b 45 08             	mov    0x8(%ebp),%eax
45915d:	53                   	push   %ebx
45915e:	8b 40 04             	mov    0x4(%eax),%eax
459161:	56                   	push   %esi
459162:	8b 30                	mov    (%eax),%esi
459164:	57                   	push   %edi
459165:	8b f9                	mov    %ecx,%edi
459167:	6a 05                	push   $0x5
459169:	8b ce                	mov    %esi,%ecx
45916b:	89 7d f8             	mov    %edi,-0x8(%ebp)
45916e:	89 45 fc             	mov    %eax,-0x4(%ebp)
459171:	e8 6e 44 fb ff       	call   0x40d5e4
459176:	84 c0                	test   %al,%al
459178:	75 51                	jne    0x4591cb
45917a:	6a 0f                	push   $0xf
45917c:	8b ce                	mov    %esi,%ecx
45917e:	e8 61 44 fb ff       	call   0x40d5e4
459183:	84 c0                	test   %al,%al
459185:	74 25                	je     0x4591ac
459187:	83 7e 0c 0f          	cmpl   $0xf,0xc(%esi)
45918b:	75 04                	jne    0x459191
45918d:	8b 06                	mov    (%esi),%eax
45918f:	eb 02                	jmp    0x459193
459191:	33 c0                	xor    %eax,%eax
459193:	8b 40 04             	mov    0x4(%eax),%eax
459196:	8b 75 0c             	mov    0xc(%ebp),%esi
459199:	8b 78 08             	mov    0x8(%eax),%edi
45919c:	8b ce                	mov    %esi,%ecx
45919e:	e8 7d 9a fb ff       	call   0x412c20
4591a3:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4591aa:	eb 41                	jmp    0x4591ed
4591ac:	8b 75 0c             	mov    0xc(%ebp),%esi
4591af:	8b ce                	mov    %esi,%ecx
4591b1:	e8 6a 9a fb ff       	call   0x412c20
4591b6:	83 26 00             	andl   $0x0,(%esi)
4591b9:	33 db                	xor    %ebx,%ebx
4591bb:	43                   	inc    %ebx
4591bc:	89 5e 0c             	mov    %ebx,0xc(%esi)
4591bf:	8b 07                	mov    (%edi),%eax
4591c1:	6a 00                	push   $0x0
4591c3:	8b 48 04             	mov    0x4(%eax),%ecx
4591c6:	53                   	push   %ebx
4591c7:	03 cf                	add    %edi,%ecx
4591c9:	eb 62                	jmp    0x45922d
4591cb:	8b 45 08             	mov    0x8(%ebp),%eax
4591ce:	33 db                	xor    %ebx,%ebx
4591d0:	43                   	inc    %ebx
4591d1:	39 58 08             	cmp    %ebx,0x8(%eax)
4591d4:	75 1b                	jne    0x4591f1
4591d6:	53                   	push   %ebx
4591d7:	8b ce                	mov    %esi,%ecx
4591d9:	e8 41 2e fc ff       	call   0x41c01f
4591de:	8b 75 0c             	mov    0xc(%ebp),%esi
4591e1:	8b ce                	mov    %esi,%ecx
4591e3:	8b f8                	mov    %eax,%edi
4591e5:	e8 36 9a fb ff       	call   0x412c20
4591ea:	89 5e 0c             	mov    %ebx,0xc(%esi)
4591ed:	89 3e                	mov    %edi,(%esi)
4591ef:	eb 41                	jmp    0x459232
4591f1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4591f4:	8b 49 04             	mov    0x4(%ecx),%ecx
4591f7:	e8 8a 40 fb ff       	call   0x40d286
4591fc:	50                   	push   %eax
4591fd:	8b ce                	mov    %esi,%ecx
4591ff:	e8 1b 2e fc ff       	call   0x41c01f
459204:	8b 7d 0c             	mov    0xc(%ebp),%edi
459207:	8b cf                	mov    %edi,%ecx
459209:	8b f0                	mov    %eax,%esi
45920b:	e8 10 9a fb ff       	call   0x412c20
459210:	8b cf                	mov    %edi,%ecx
459212:	89 5f 0c             	mov    %ebx,0xc(%edi)
459215:	89 37                	mov    %esi,(%edi)
459217:	e8 6a 40 fb ff       	call   0x40d286
45921c:	85 c0                	test   %eax,%eax
45921e:	75 12                	jne    0x459232
459220:	8b 55 f8             	mov    -0x8(%ebp),%edx
459223:	50                   	push   %eax
459224:	8b 02                	mov    (%edx),%eax
459226:	6a 02                	push   $0x2
459228:	8b 48 04             	mov    0x4(%eax),%ecx
45922b:	03 ca                	add    %edx,%ecx
45922d:	e8 1a 3d ff ff       	call   0x44cf4c
459232:	5f                   	pop    %edi
459233:	5e                   	pop    %esi
459234:	33 c0                	xor    %eax,%eax
459236:	5b                   	pop    %ebx
459237:	c9                   	leave
459238:	c2 08 00             	ret    $0x8
45923b:	55                   	push   %ebp
45923c:	8b ec                	mov    %esp,%ebp
45923e:	83 ec 14             	sub    $0x14,%esp
459241:	8b 45 08             	mov    0x8(%ebp),%eax
459244:	56                   	push   %esi
459245:	8b 40 04             	mov    0x4(%eax),%eax
459248:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45924b:	8b 30                	mov    (%eax),%esi
45924d:	57                   	push   %edi
45924e:	8b 78 04             	mov    0x4(%eax),%edi
459251:	8b ce                	mov    %esi,%ecx
459253:	e8 14 01 fb ff       	call   0x40936c
459258:	8b 76 08             	mov    0x8(%esi),%esi
45925b:	8b cf                	mov    %edi,%ecx
45925d:	e8 24 40 fb ff       	call   0x40d286
459262:	50                   	push   %eax
459263:	56                   	push   %esi
459264:	8b 75 fc             	mov    -0x4(%ebp),%esi
459267:	8d 45 ec             	lea    -0x14(%ebp),%eax
45926a:	50                   	push   %eax
45926b:	8b ce                	mov    %esi,%ecx
45926d:	e8 ba 15 00 00       	call   0x45a82c
459272:	84 c0                	test   %al,%al
459274:	75 19                	jne    0x45928f
459276:	8b 75 0c             	mov    0xc(%ebp),%esi
459279:	8b ce                	mov    %esi,%ecx
45927b:	e8 a0 99 fb ff       	call   0x412c20
459280:	83 0e ff             	orl    $0xffffffff,(%esi)
459283:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
45928a:	e9 2c 01 00 00       	jmp    0x4593bb
45928f:	53                   	push   %ebx
459290:	6a 11                	push   $0x11
459292:	6a 02                	push   $0x2
459294:	6a 02                	push   $0x2
459296:	ff 15 04 d8 48 00    	call   *0x48d804
45929c:	8b 7d 0c             	mov    0xc(%ebp),%edi
45929f:	6a 04                	push   $0x4
4592a1:	8b d8                	mov    %eax,%ebx
4592a3:	6a 01                	push   $0x1
4592a5:	57                   	push   %edi
4592a6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4592a9:	e8 a2 2d fc ff       	call   0x41c050
4592ae:	83 c4 0c             	add    $0xc,%esp
4592b1:	83 fb ff             	cmp    $0xffffffff,%ebx
4592b4:	75 3b                	jne    0x4592f1
4592b6:	33 db                	xor    %ebx,%ebx
4592b8:	53                   	push   %ebx
4592b9:	ff 15 f4 d7 48 00    	call   *0x48d7f4
4592bf:	50                   	push   %eax
4592c0:	8b 06                	mov    (%esi),%eax
4592c2:	8b 48 04             	mov    0x4(%eax),%ecx
4592c5:	03 ce                	add    %esi,%ecx
4592c7:	e8 80 3c ff ff       	call   0x44cf4c
4592cc:	53                   	push   %ebx
4592cd:	6a 01                	push   $0x1
4592cf:	53                   	push   %ebx
4592d0:	57                   	push   %edi
4592d1:	e8 ba 88 fb ff       	call   0x411b90
4592d6:	8b f0                	mov    %eax,%esi
4592d8:	83 c4 10             	add    $0x10,%esp
4592db:	8b ce                	mov    %esi,%ecx
4592dd:	e8 3e 99 fb ff       	call   0x412c20
4592e2:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4592e9:	83 0e ff             	orl    $0xffffffff,(%esi)
4592ec:	e9 c9 00 00 00       	jmp    0x4593ba
4592f1:	6a 10                	push   $0x10
4592f3:	8d 45 ec             	lea    -0x14(%ebp),%eax
4592f6:	50                   	push   %eax
4592f7:	53                   	push   %ebx
4592f8:	ff 15 dc d7 48 00    	call   *0x48d7dc
4592fe:	33 db                	xor    %ebx,%ebx
459300:	53                   	push   %ebx
459301:	83 f8 ff             	cmp    $0xffffffff,%eax
459304:	75 1f                	jne    0x459325
459306:	ff 15 f4 d7 48 00    	call   *0x48d7f4
45930c:	50                   	push   %eax
45930d:	8b 06                	mov    (%esi),%eax
45930f:	8b 48 04             	mov    0x4(%eax),%ecx
459312:	03 ce                	add    %esi,%ecx
459314:	e8 33 3c ff ff       	call   0x44cf4c
459319:	8b 45 fc             	mov    -0x4(%ebp),%eax
45931c:	50                   	push   %eax
45931d:	ff 15 e0 d7 48 00    	call   *0x48d7e0
459323:	eb a7                	jmp    0x4592cc
459325:	6a 01                	push   $0x1
459327:	53                   	push   %ebx
459328:	57                   	push   %edi
459329:	e8 62 88 fb ff       	call   0x411b90
45932e:	8b f0                	mov    %eax,%esi
459330:	83 c4 10             	add    $0x10,%esp
459333:	8b ce                	mov    %esi,%ecx
459335:	e8 e6 98 fb ff       	call   0x412c20
45933a:	33 c0                	xor    %eax,%eax
45933c:	40                   	inc    %eax
45933d:	50                   	push   %eax
45933e:	50                   	push   %eax
45933f:	53                   	push   %ebx
459340:	57                   	push   %edi
459341:	89 46 0c             	mov    %eax,0xc(%esi)
459344:	c7 06 d1 94 b5 02    	movl   $0x2b594d1,(%esi)
45934a:	e8 41 88 fb ff       	call   0x411b90
45934f:	8b f0                	mov    %eax,%esi
459351:	83 c4 10             	add    $0x10,%esp
459354:	8b ce                	mov    %esi,%ecx
459356:	e8 c5 98 fb ff       	call   0x412c20
45935b:	8b 45 fc             	mov    -0x4(%ebp),%eax
45935e:	33 c9                	xor    %ecx,%ecx
459360:	41                   	inc    %ecx
459361:	6a 02                	push   $0x2
459363:	51                   	push   %ecx
459364:	53                   	push   %ebx
459365:	57                   	push   %edi
459366:	89 4e 0c             	mov    %ecx,0xc(%esi)
459369:	89 06                	mov    %eax,(%esi)
45936b:	e8 20 88 fb ff       	call   0x411b90
459370:	8b f8                	mov    %eax,%edi
459372:	8b 45 08             	mov    0x8(%ebp),%eax
459375:	83 c4 10             	add    $0x10,%esp
459378:	8b 48 04             	mov    0x4(%eax),%ecx
45937b:	8b 31                	mov    (%ecx),%esi
45937d:	8b ce                	mov    %esi,%ecx
45937f:	e8 e8 ff fa ff       	call   0x40936c
459384:	ff 76 08             	push   0x8(%esi)
459387:	8b cf                	mov    %edi,%ecx
459389:	e8 da d7 fa ff       	call   0x406b68
45938e:	6a 03                	push   $0x3
459390:	6a 01                	push   $0x1
459392:	53                   	push   %ebx
459393:	ff 75 0c             	push   0xc(%ebp)
459396:	e8 f5 87 fb ff       	call   0x411b90
45939b:	8b f8                	mov    %eax,%edi
45939d:	8b 45 08             	mov    0x8(%ebp),%eax
4593a0:	83 c4 10             	add    $0x10,%esp
4593a3:	8b 48 04             	mov    0x4(%eax),%ecx
4593a6:	8b 71 04             	mov    0x4(%ecx),%esi
4593a9:	8b ce                	mov    %esi,%ecx
4593ab:	e8 bc ff fa ff       	call   0x40936c
4593b0:	ff 76 08             	push   0x8(%esi)
4593b3:	8b cf                	mov    %edi,%ecx
4593b5:	e8 ae d7 fa ff       	call   0x406b68
4593ba:	5b                   	pop    %ebx
4593bb:	5f                   	pop    %edi
4593bc:	33 c0                	xor    %eax,%eax
4593be:	5e                   	pop    %esi
4593bf:	c9                   	leave
4593c0:	c2 08 00             	ret    $0x8
4593c3:	55                   	push   %ebp
4593c4:	8b ec                	mov    %esp,%ebp
4593c6:	53                   	push   %ebx
4593c7:	56                   	push   %esi
4593c8:	8b 75 08             	mov    0x8(%ebp),%esi
4593cb:	57                   	push   %edi
4593cc:	8b 46 04             	mov    0x4(%esi),%eax
4593cf:	6a 00                	push   $0x0
4593d1:	33 db                	xor    %ebx,%ebx
4593d3:	43                   	inc    %ebx
4593d4:	53                   	push   %ebx
4593d5:	53                   	push   %ebx
4593d6:	ff 30                	push   (%eax)
4593d8:	8b f9                	mov    %ecx,%edi
4593da:	e8 b1 87 fb ff       	call   0x411b90
4593df:	83 c4 10             	add    $0x10,%esp
4593e2:	85 c0                	test   %eax,%eax
4593e4:	75 16                	jne    0x4593fc
4593e6:	8b 75 0c             	mov    0xc(%ebp),%esi
4593e9:	8b ce                	mov    %esi,%ecx
4593eb:	e8 30 98 fb ff       	call   0x412c20
4593f0:	83 26 00             	andl   $0x0,(%esi)
4593f3:	6a 00                	push   $0x0
4593f5:	89 5e 0c             	mov    %ebx,0xc(%esi)
4593f8:	6a ff                	push   $0xffffffff
4593fa:	eb 5f                	jmp    0x45945b
4593fc:	8b c8                	mov    %eax,%ecx
4593fe:	e8 83 3e fb ff       	call   0x40d286
459403:	3d d1 94 b5 02       	cmp    $0x2b594d1,%eax
459408:	74 16                	je     0x459420
45940a:	8b 75 0c             	mov    0xc(%ebp),%esi
45940d:	8b ce                	mov    %esi,%ecx
45940f:	e8 0c 98 fb ff       	call   0x412c20
459414:	83 26 00             	andl   $0x0,(%esi)
459417:	6a 00                	push   $0x0
459419:	89 5e 0c             	mov    %ebx,0xc(%esi)
45941c:	6a fe                	push   $0xfffffffe
45941e:	eb 3b                	jmp    0x45945b
459420:	8b 46 04             	mov    0x4(%esi),%eax
459423:	53                   	push   %ebx
459424:	53                   	push   %ebx
459425:	53                   	push   %ebx
459426:	ff 30                	push   (%eax)
459428:	e8 63 87 fb ff       	call   0x411b90
45942d:	83 c4 10             	add    $0x10,%esp
459430:	8b c8                	mov    %eax,%ecx
459432:	e8 4f 3e fb ff       	call   0x40d286
459437:	50                   	push   %eax
459438:	ff 15 e0 d7 48 00    	call   *0x48d7e0
45943e:	8b 75 0c             	mov    0xc(%ebp),%esi
459441:	8b ce                	mov    %esi,%ecx
459443:	85 c0                	test   %eax,%eax
459445:	74 22                	je     0x459469
459447:	e8 d4 97 fb ff       	call   0x412c20
45944c:	83 26 00             	andl   $0x0,(%esi)
45944f:	6a 00                	push   $0x0
459451:	89 5e 0c             	mov    %ebx,0xc(%esi)
459454:	ff 15 f4 d7 48 00    	call   *0x48d7f4
45945a:	50                   	push   %eax
45945b:	8b 07                	mov    (%edi),%eax