45905d:	8b cb                	mov    %ebx,%ecx
45905f:	57                   	push   %edi
459060:	e8 c3 f9 ff ff       	call   0x458a28
459065:	56                   	push   %esi
459066:	57                   	push   %edi
459067:	8d 45 dc             	lea    -0x24(%ebp),%eax
45906a:	50                   	push   %eax
45906b:	8b cb                	mov    %ebx,%ecx
45906d:	e8 94 f8 ff ff       	call   0x458906
459072:	f6 45 0c 40          	testb  $0x40,0xc(%ebp)
459076:	8b 08                	mov    (%eax),%ecx
459078:	8b 40 04             	mov    0x4(%eax),%eax
45907b:	89 4d cc             	mov    %ecx,-0x34(%ebp)
45907e:	89 45 d0             	mov    %eax,-0x30(%ebp)
459081:	0f 84 99 01 00 00    	je     0x459220
459087:	8b 83 9c 00 00 00    	mov    0x9c(%ebx),%eax
45908d:	33 d2                	xor    %edx,%edx
45908f:	3b f2                	cmp    %edx,%esi
459091:	89 55 fc             	mov    %edx,-0x4(%ebp)
459094:	89 55 10             	mov    %edx,0x10(%ebp)
459097:	89 45 e0             	mov    %eax,-0x20(%ebp)
45909a:	89 93 9c 00 00 00    	mov    %edx,0x9c(%ebx)
4590a0:	0f 8e bd 00 00 00    	jle    0x459163
4590a6:	8d 47 04             	lea    0x4(%edi),%eax
4590a9:	89 45 ec             	mov    %eax,-0x14(%ebp)
4590ac:	8b ce                	mov    %esi,%ecx
4590ae:	f6 40 05 01          	testb  $0x1,0x5(%eax)
4590b2:	74 06                	je     0x4590ba
4590b4:	83 38 00             	cmpl   $0x0,(%eax)
4590b7:	74 01                	je     0x4590ba
4590b9:	42                   	inc    %edx
4590ba:	83 c0 14             	add    $0x14,%eax
4590bd:	49                   	dec    %ecx
4590be:	75 ee                	jne    0x4590ae
4590c0:	85 d2                	test   %edx,%edx
4590c2:	89 55 10             	mov    %edx,0x10(%ebp)
4590c5:	0f 8e 98 00 00 00    	jle    0x459163
4590cb:	8d 04 52             	lea    (%edx,%edx,2),%eax
4590ce:	c1 e0 03             	shl    $0x3,%eax
4590d1:	50                   	push   %eax
4590d2:	e8 7e 6f fe ff       	call   0x440055
4590d7:	8b f8                	mov    %eax,%edi
4590d9:	85 ff                	test   %edi,%edi
4590db:	59                   	pop    %ecx
4590dc:	74 15                	je     0x4590f3
4590de:	68 b4 8b 45 00       	push   $0x458bb4
4590e3:	ff 75 10             	push   0x10(%ebp)
4590e6:	6a 18                	push   $0x18
4590e8:	57                   	push   %edi
4590e9:	e8 d9 f4 ff ff       	call   0x4585c7
4590ee:	89 7d fc             	mov    %edi,-0x4(%ebp)
4590f1:	eb 04                	jmp    0x4590f7
4590f3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4590f7:	8b 7d fc             	mov    -0x4(%ebp),%edi
4590fa:	83 65 10 00          	andl   $0x0,0x10(%ebp)
4590fe:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
459102:	8b 45 ec             	mov    -0x14(%ebp),%eax
459105:	83 c7 08             	add    $0x8,%edi
459108:	89 7d f0             	mov    %edi,-0x10(%ebp)
45910b:	89 45 ec             	mov    %eax,-0x14(%ebp)
45910e:	f6 40 05 01          	testb  $0x1,0x5(%eax)
459112:	74 41                	je     0x459155
459114:	83 38 00             	cmpl   $0x0,(%eax)
459117:	74 3c                	je     0x459155
459119:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45911c:	89 4f f8             	mov    %ecx,-0x8(%edi)
45911f:	8b 00                	mov    (%eax),%eax
459121:	8d 55 bc             	lea    -0x44(%ebp),%edx
459124:	52                   	push   %edx
459125:	89 47 fc             	mov    %eax,-0x4(%edi)
459128:	8b 03                	mov    (%ebx),%eax
45912a:	51                   	push   %ecx
45912b:	8b cb                	mov    %ebx,%ecx
45912d:	ff 90 6c 01 00 00    	call   *0x16c(%eax)
459133:	8d 45 bc             	lea    -0x44(%ebp),%eax
459136:	50                   	push   %eax
459137:	8b cb                	mov    %ebx,%ecx
459139:	e8 1c 5f ff ff       	call   0x44f05a
45913e:	ff 45 10             	incl   0x10(%ebp)
459141:	83 45 f0 18          	addl   $0x18,-0x10(%ebp)
459145:	8b 45 ec             	mov    -0x14(%ebp),%eax
459148:	8d 75 bc             	lea    -0x44(%ebp),%esi
45914b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914f:	8b 75 e4             	mov    -0x1c(%ebp),%esi
459152:	8b 7d f0             	mov    -0x10(%ebp),%edi
459155:	ff 45 f8             	incl   -0x8(%ebp)
459158:	83 c0 14             	add    $0x14,%eax
45915b:	39 75 f8             	cmp    %esi,-0x8(%ebp)
45915e:	89 45 ec             	mov    %eax,-0x14(%ebp)
459161:	7c ab                	jl     0x45910e
459163:	8b 43 7c             	mov    0x7c(%ebx),%eax
459166:	a8 01                	test   $0x1,%al
459168:	74 0a                	je     0x459174
45916a:	a8 04                	test   $0x4,%al
45916c:	74 06                	je     0x459174
45916e:	8b 45 cc             	mov    -0x34(%ebp),%eax
459171:	89 43 6c             	mov    %eax,0x6c(%ebx)
459174:	33 ff                	xor    %edi,%edi
459176:	85 f6                	test   %esi,%esi
459178:	7e 1a                	jle    0x459194
45917a:	8b 45 f4             	mov    -0xc(%ebp),%eax
45917d:	89 45 f0             	mov    %eax,-0x10(%ebp)
459180:	ff 75 f0             	push   -0x10(%ebp)
459183:	8b cb                	mov    %ebx,%ecx
459185:	57                   	push   %edi
459186:	e8 a1 f5 ff ff       	call   0x45872c
45918b:	83 45 f0 14          	addl   $0x14,-0x10(%ebp)
45918f:	47                   	inc    %edi
459190:	3b fe                	cmp    %esi,%edi
459192:	7c ec                	jl     0x459180
459194:	8b 45 10             	mov    0x10(%ebp),%eax
459197:	85 c0                	test   %eax,%eax
459199:	7e 79                	jle    0x459214
45919b:	8b 75 fc             	mov    -0x4(%ebp),%esi
45919e:	83 c6 08             	add    $0x8,%esi
4591a1:	89 45 10             	mov    %eax,0x10(%ebp)
4591a4:	ff 76 fc             	push   -0x4(%esi)
4591a7:	8b cb                	mov    %ebx,%ecx
4591a9:	e8 2e 79 fe ff       	call   0x440adc
4591ae:	85 c0                	test   %eax,%eax
4591b0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4591b3:	74 4e                	je     0x459203
4591b5:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4591b8:	51                   	push   %ecx
4591b9:	ff 70 1c             	push   0x1c(%eax)
4591bc:	ff 15 40 07 4b 00    	call   *0x4b0740
4591c2:	8b 06                	mov    (%esi),%eax
4591c4:	8b 7d bc             	mov    -0x44(%ebp),%edi
4591c7:	8b 4e 04             	mov    0x4(%esi),%ecx
4591ca:	2b f8                	sub    %eax,%edi
4591cc:	8b 45 c0             	mov    -0x40(%ebp),%eax
4591cf:	2b c1                	sub    %ecx,%eax
4591d1:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4591d4:	51                   	push   %ecx
4591d5:	ff 76 f8             	push   -0x8(%esi)
4591d8:	89 45 ec             	mov    %eax,-0x14(%ebp)
4591db:	8b 03                	mov    (%ebx),%eax
4591dd:	8b cb                	mov    %ebx,%ecx
4591df:	ff 90 6c 01 00 00    	call   *0x16c(%eax)
4591e5:	8b 55 c0             	mov    -0x40(%ebp),%edx
4591e8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4591eb:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4591ee:	6a 15                	push   $0x15
4591f0:	03 c2                	add    %edx,%eax
4591f2:	33 d2                	xor    %edx,%edx
4591f4:	52                   	push   %edx
4591f5:	52                   	push   %edx
4591f6:	03 cf                	add    %edi,%ecx
4591f8:	50                   	push   %eax
4591f9:	51                   	push   %ecx
4591fa:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4591fd:	52                   	push   %edx
4591fe:	e8 66 7d fe ff       	call   0x440f69
459203:	83 c6 18             	add    $0x18,%esi
459206:	ff 4d 10             	decl   0x10(%ebp)
459209:	75 99                	jne    0x4591a4
45920b:	ff 75 fc             	push   -0x4(%ebp)
45920e:	e8 6d 6e fe ff       	call   0x440080
459213:	59                   	pop    %ecx
459214:	8b 45 e0             	mov    -0x20(%ebp),%eax
459217:	8b 7d f4             	mov    -0xc(%ebp),%edi
45921a:	89 83 9c 00 00 00    	mov    %eax,0x9c(%ebx)
459220:	57                   	push   %edi
459221:	e8 5a 6e fe ff       	call   0x440080
459226:	59                   	pop    %ecx
459227:	8d 45 bc             	lea    -0x44(%ebp),%eax
45922a:	50                   	push   %eax
45922b:	ff 15 3c 08 4b 00    	call   *0x4b083c
459231:	8b 75 0c             	mov    0xc(%ebp),%esi
459234:	8b 03                	mov    (%ebx),%eax
459236:	83 e6 02             	and    $0x2,%esi
459239:	56                   	push   %esi
45923a:	8d 4d bc             	lea    -0x44(%ebp),%ecx
45923d:	51                   	push   %ecx
45923e:	8b cb                	mov    %ebx,%ecx
459240:	ff 90 3c 01 00 00    	call   *0x13c(%eax)
459246:	8b 45 c0             	mov    -0x40(%ebp),%eax
459249:	2b 45 c8             	sub    -0x38(%ebp),%eax
45924c:	56                   	push   %esi
45924d:	01 45 d0             	add    %eax,-0x30(%ebp)
459250:	8b 45 bc             	mov    -0x44(%ebp),%eax
459253:	2b 45 c4             	sub    -0x3c(%ebp),%eax
459256:	8b cb                	mov    %ebx,%ecx
459258:	01 45 cc             	add    %eax,-0x34(%ebp)
45925b:	8b 45 0c             	mov    0xc(%ebp),%eax
45925e:	83 e0 01             	and    $0x1,%eax
459261:	50                   	push   %eax
459262:	8d 45 dc             	lea    -0x24(%ebp),%eax
459265:	50                   	push   %eax
459266:	e8 b4 0c 00 00       	call   0x459f1f
45926b:	8b 45 dc             	mov    -0x24(%ebp),%eax
45926e:	39 45 cc             	cmp    %eax,-0x34(%ebp)
459271:	5f                   	pop    %edi
459272:	5e                   	pop    %esi
459273:	5b                   	pop    %ebx
459274:	7f 03                	jg     0x459279
459276:	89 45 cc             	mov    %eax,-0x34(%ebp)
459279:	8b 45 e0             	mov    -0x20(%ebp),%eax
45927c:	39 45 d0             	cmp    %eax,-0x30(%ebp)
45927f:	7f 03                	jg     0x459284
459281:	89 45 d0             	mov    %eax,-0x30(%ebp)
459284:	8b 45 08             	mov    0x8(%ebp),%eax
459287:	8b 4d cc             	mov    -0x34(%ebp),%ecx
45928a:	89 08                	mov    %ecx,(%eax)
45928c:	8b 4d d0             	mov    -0x30(%ebp),%ecx
45928f:	89 48 04             	mov    %ecx,0x4(%eax)
459292:	c9                   	leave
459293:	c2 0c 00             	ret    $0xc
459296:	8b 54 24 0c          	mov    0xc(%esp),%edx
45929a:	33 c0                	xor    %eax,%eax
45929c:	39 44 24 08          	cmp    %eax,0x8(%esp)
4592a0:	6a ff                	push   $0xffffffff
4592a2:	0f 95 c0             	setne  %al
4592a5:	f7 da                	neg    %edx
4592a7:	1b d2                	sbb    %edx,%edx
4592a9:	83 e2 02             	and    $0x2,%edx
4592ac:	0b c2                	or     %edx,%eax
4592ae:	50                   	push   %eax
4592af:	ff 74 24 0c          	push   0xc(%esp)
4592b3:	e8 a2 fc ff ff       	call   0x458f5a
4592b8:	8b 44 24 04          	mov    0x4(%esp),%eax
4592bc:	c2 0c 00             	ret    $0xc
4592bf:	55                   	push   %ebp
4592c0:	8b ec                	mov    %esp,%ebp
4592c2:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
4592c6:	8b 45 10             	mov    0x10(%ebp),%eax
4592c9:	75 23                	jne    0x4592ee
4592cb:	a8 44                	test   $0x44,%al
4592cd:	75 1f                	jne    0x4592ee
4592cf:	8b d0                	mov    %eax,%edx
4592d1:	83 e2 08             	and    $0x8,%edx
4592d4:	75 04                	jne    0x4592da
4592d6:	a8 10                	test   $0x10,%al
4592d8:	74 14                	je     0x4592ee
4592da:	56                   	push   %esi
4592db:	8b 31                	mov    (%ecx),%esi
4592dd:	52                   	push   %edx
4592de:	83 e0 01             	and    $0x1,%eax
4592e1:	50                   	push   %eax
4592e2:	ff 75 08             	push   0x8(%ebp)
4592e5:	ff 96 30 01 00 00    	call   *0x130(%esi)
4592eb:	5e                   	pop    %esi
4592ec:	eb 0c                	jmp    0x4592fa
4592ee:	ff 75 0c             	push   0xc(%ebp)
4592f1:	50                   	push   %eax
4592f2:	ff 75 08             	push   0x8(%ebp)
4592f5:	e8 60 fc ff ff       	call   0x458f5a
4592fa:	8b 45 08             	mov    0x8(%ebp),%eax
4592fd:	5d                   	pop    %ebp
4592fe:	c2 0c 00             	ret    $0xc
459301:	ff 74 24 08          	push   0x8(%esp)
459305:	8d 81 a8 00 00 00    	lea    0xa8(%ecx),%eax
45930b:	50                   	push   %eax
45930c:	e8 a2 fa ff ff       	call   0x458db3
459311:	c2 08 00             	ret    $0x8
459314:	ff 74 24 08          	push   0x8(%esp)
459318:	8d 81 a0 00 00 00    	lea    0xa0(%ecx),%eax
45931e:	50                   	push   %eax
45931f:	e8 8f fa ff ff       	call   0x458db3
459324:	c2 08 00             	ret    $0x8
459327:	b8 d9 3d 48 00       	mov    $0x483dd9,%eax
45932c:	e8 4b e9 fb ff       	call   0x417c7c
459331:	83 ec 20             	sub    $0x20,%esp
459334:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
459339:	53                   	push   %ebx
45933a:	56                   	push   %esi
45933b:	8b f1                	mov    %ecx,%esi
45933d:	8b 8e b0 00 00 00    	mov    0xb0(%esi),%ecx
459343:	85 c9                	test   %ecx,%ecx
459345:	89 45 f0             	mov    %eax,-0x10(%ebp)
459348:	57                   	push   %edi
459349:	74 1c                	je     0x459367
45934b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
45934e:	50                   	push   %eax
45934f:	ff 75 0c             	push   0xc(%ebp)
459352:	e8 e4 57 fe ff       	call   0x43eb3b
459357:	85 c0                	test   %eax,%eax
459359:	74 0c                	je     0x459367
45935b:	8b 7d d4             	mov    -0x2c(%ebp),%edi
45935e:	83 ff ff             	cmp    $0xffffffff,%edi
459361:	0f 85 93 00 00 00    	jne    0x4593fa
459367:	33 ff                	xor    %edi,%edi
459369:	39 be b0 00 00 00    	cmp    %edi,0xb0(%esi)
45936f:	75 29                	jne    0x45939a
459371:	6a 1c                	push   $0x1c
459373:	e8 dd 6c fe ff       	call   0x440055
459378:	59                   	pop    %ecx
459379:	89 45 d8             	mov    %eax,-0x28(%ebp)
45937c:	3b c7                	cmp    %edi,%eax
45937e:	89 7d fc             	mov    %edi,-0x4(%ebp)
459381:	74 0b                	je     0x45938e
459383:	6a 0a                	push   $0xa
459385:	8b c8                	mov    %eax,%ecx
459387:	e8 b7 56 fe ff       	call   0x43ea43
45938c:	eb 02                	jmp    0x459390
45938e:	33 c0                	xor    %eax,%eax
459390:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
459394:	89 86 b0 00 00 00    	mov    %eax,0xb0(%esi)
45939a:	ff 75 0c             	push   0xc(%ebp)
45939d:	ff 15 88 03 4b 00    	call   *0x4b0388
4593a3:	40                   	inc    %eax
4593a4:	50                   	push   %eax
4593a5:	ff 75 0c             	push   0xc(%ebp)
4593a8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4593ab:	e8 b7 c2 fb ff       	call   0x415667
4593b0:	8b 5d d8             	mov    -0x28(%ebp),%ebx
4593b3:	8b 06                	mov    (%esi),%eax
4593b5:	53                   	push   %ebx
4593b6:	57                   	push   %edi
4593b7:	68 1c 04 00 00       	push   $0x41c
4593bc:	8b ce                	mov    %esi,%ecx
4593be:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4593c5:	ff 90 10 01 00 00    	call   *0x110(%eax)
4593cb:	8b f8                	mov    %eax,%edi
4593cd:	83 ff ff             	cmp    $0xffffffff,%edi
4593d0:	75 0c                	jne    0x4593de
4593d2:	8d 4b f0             	lea    -0x10(%ebx),%ecx
4593d5:	e8 78 7f fa ff       	call   0x401352
4593da:	33 c0                	xor    %eax,%eax
4593dc:	eb 3e                	jmp    0x45941c
4593de:	ff 75 0c             	push   0xc(%ebp)
4593e1:	8b 8e b0 00 00 00    	mov    0xb0(%esi),%ecx
4593e7:	e8 25 59 fe ff       	call   0x43ed11
4593ec:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4593f0:	8d 4b f0             	lea    -0x10(%ebx),%ecx
4593f3:	89 38                	mov    %edi,(%eax)
4593f5:	e8 58 7f fa ff       	call   0x401352
4593fa:	8d 45 dc             	lea    -0x24(%ebp),%eax
4593fd:	50                   	push   %eax
4593fe:	ff 75 08             	push   0x8(%ebp)
459401:	8b ce                	mov    %esi,%ecx
459403:	e8 1b f0 ff ff       	call   0x458423
459408:	8d 45 dc             	lea    -0x24(%ebp),%eax
45940b:	50                   	push   %eax
45940c:	ff 75 08             	push   0x8(%ebp)
45940f:	8b ce                	mov    %esi,%ecx
459411:	89 7d ec             	mov    %edi,-0x14(%ebp)
459414:	e8 13 f3 ff ff       	call   0x45872c
459419:	33 c0                	xor    %eax,%eax
45941b:	40                   	inc    %eax
45941c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45941f:	5f                   	pop    %edi
459420:	5e                   	pop    %esi
459421:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
459428:	8b 4d f0             	mov    -0x10(%ebp),%ecx
45942b:	5b                   	pop    %ebx
45942c:	e8 ad e7 fb ff       	call   0x417bde