58010e:	e8 3d 50 f6 ff       	call   0x4e5150
580113:	83 c4 08             	add    $0x8,%esp
580116:	85 c0                	test   %eax,%eax
580118:	74 3a                	je     0x580154
58011a:	ff 33                	push   (%ebx)
58011c:	46                   	inc    %esi
58011d:	e8 9e 4f f6 ff       	call   0x4e50c0
580122:	83 c4 04             	add    $0x4,%esp
580125:	3b f0                	cmp    %eax,%esi
580127:	7c aa                	jl     0x5800d3
580129:	8b 7c 24 20          	mov    0x20(%esp),%edi
58012d:	8b 54 24 10          	mov    0x10(%esp),%edx
580131:	42                   	inc    %edx
580132:	89 54 24 10          	mov    %edx,0x10(%esp)
580136:	3b 57 04             	cmp    0x4(%edi),%edx
580139:	0f 8c 71 ff ff ff    	jl     0x5800b0
58013f:	8b 4c 24 24          	mov    0x24(%esp),%ecx
580143:	3b e9                	cmp    %ecx,%ebp
580145:	75 2f                	jne    0x580176
580147:	5f                   	pop    %edi
580148:	5e                   	pop    %esi
580149:	5d                   	pop    %ebp
58014a:	b8 02 00 00 00       	mov    $0x2,%eax
58014f:	5b                   	pop    %ebx
580150:	83 c4 0c             	add    $0xc,%esp
580153:	c3                   	ret
580154:	8b 5c 24 24          	mov    0x24(%esp),%ebx
580158:	3b eb                	cmp    %ebx,%ebp
58015a:	75 10                	jne    0x58016c
58015c:	ff 33                	push   (%ebx)
58015e:	e8 bd 4d f6 ff       	call   0x4e4f20
580163:	83 c4 04             	add    $0x4,%esp
580166:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
58016c:	5f                   	pop    %edi
58016d:	5e                   	pop    %esi
58016e:	5d                   	pop    %ebp
58016f:	33 c0                	xor    %eax,%eax
580171:	5b                   	pop    %ebx
580172:	83 c4 0c             	add    $0xc,%esp
580175:	c3                   	ret
580176:	8b 44 24 18          	mov    0x18(%esp),%eax
58017a:	5f                   	pop    %edi
58017b:	5e                   	pop    %esi
58017c:	5d                   	pop    %ebp
58017d:	8b 00                	mov    (%eax),%eax
58017f:	89 01                	mov    %eax,(%ecx)
580181:	b8 01 00 00 00       	mov    $0x1,%eax
580186:	5b                   	pop    %ebx
580187:	83 c4 0c             	add    $0xc,%esp
58018a:	c3                   	ret
58018b:	cc                   	int3
58018c:	cc                   	int3
58018d:	cc                   	int3
58018e:	cc                   	int3
58018f:	cc                   	int3
580190:	b8 18 00 00 00       	mov    $0x18,%eax
580195:	e8 16 16 05 00       	call   0x5d17b0
58019a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58019e:	53                   	push   %ebx
58019f:	55                   	push   %ebp
5801a0:	56                   	push   %esi
5801a1:	83 78 04 01          	cmpl   $0x1,0x4(%eax)
5801a5:	8b 28                	mov    (%eax),%ebp
5801a7:	57                   	push   %edi
5801a8:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
5801af:	00
5801b0:	8d 7d 10             	lea    0x10(%ebp),%edi
5801b3:	89 7c 24 10          	mov    %edi,0x10(%esp)
5801b7:	0f 8e 2f 02 00 00    	jle    0x5803ec
5801bd:	83 c5 04             	add    $0x4,%ebp
5801c0:	89 6c 24 20          	mov    %ebp,0x20(%esp)
5801c4:	ff 37                	push   (%edi)
5801c6:	e8 b5 15 ff ff       	call   0x571780
5801cb:	8b f0                	mov    %eax,%esi
5801cd:	33 db                	xor    %ebx,%ebx
5801cf:	89 74 24 28          	mov    %esi,0x28(%esp)
5801d3:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
5801d7:	ff 76 04             	push   0x4(%esi)
5801da:	e8 e1 4e f6 ff       	call   0x4e50c0
5801df:	83 c4 08             	add    $0x8,%esp
5801e2:	85 c0                	test   %eax,%eax
5801e4:	0f 8e c8 00 00 00    	jle    0x5802b2
5801ea:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5801f0:	53                   	push   %ebx
5801f1:	ff 76 04             	push   0x4(%esi)
5801f4:	e8 87 50 f6 ff       	call   0x4e5280
5801f9:	ff 75 00             	push   0x0(%ebp)
5801fc:	8b d8                	mov    %eax,%ebx
5801fe:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
580205:	00
580206:	33 f6                	xor    %esi,%esi
580208:	e8 b3 4e f6 ff       	call   0x4e50c0
58020d:	83 c4 0c             	add    $0xc,%esp
580210:	85 c0                	test   %eax,%eax
580212:	7e 5e                	jle    0x580272
580214:	56                   	push   %esi
580215:	ff 75 00             	push   0x0(%ebp)
580218:	e8 63 50 f6 ff       	call   0x4e5280
58021d:	ff 73 04             	push   0x4(%ebx)
580220:	8b f8                	mov    %eax,%edi
580222:	8d 4d fc             	lea    -0x4(%ebp),%ecx
580225:	57                   	push   %edi
580226:	51                   	push   %ecx
580227:	e8 84 46 00 00       	call   0x5848b0
58022c:	83 c4 14             	add    $0x14,%esp
58022f:	85 c0                	test   %eax,%eax
580231:	74 23                	je     0x580256
580233:	6a 00                	push   $0x0
580235:	57                   	push   %edi
580236:	53                   	push   %ebx
580237:	ff 74 24 1c          	push   0x1c(%esp)
58023b:	e8 a0 44 00 00       	call   0x5846e0
580240:	83 c4 10             	add    $0x10,%esp
580243:	85 c0                	test   %eax,%eax
580245:	0f 84 ae 01 00 00    	je     0x5803f9
58024b:	bf 01 00 00 00       	mov    $0x1,%edi
580250:	89 7c 24 14          	mov    %edi,0x14(%esp)
580254:	eb 04                	jmp    0x58025a
580256:	8b 7c 24 14          	mov    0x14(%esp),%edi
58025a:	ff 75 00             	push   0x0(%ebp)
58025d:	46                   	inc    %esi
58025e:	e8 5d 4e f6 ff       	call   0x4e50c0
580263:	83 c4 04             	add    $0x4,%esp
580266:	3b f0                	cmp    %eax,%esi
580268:	7c aa                	jl     0x580214
58026a:	85 ff                	test   %edi,%edi
58026c:	75 20                	jne    0x58028e
58026e:	8b 7c 24 10          	mov    0x10(%esp),%edi
580272:	8b 45 04             	mov    0x4(%ebp),%eax
580275:	85 c0                	test   %eax,%eax
580277:	74 15                	je     0x58028e
580279:	6a 00                	push   $0x0
58027b:	50                   	push   %eax
58027c:	53                   	push   %ebx
58027d:	57                   	push   %edi
58027e:	e8 5d 44 00 00       	call   0x5846e0
580283:	83 c4 10             	add    $0x10,%esp
580286:	85 c0                	test   %eax,%eax
580288:	0f 84 6b 01 00 00    	je     0x5803f9
58028e:	8b 74 24 24          	mov    0x24(%esp),%esi
580292:	8b 5c 24 18          	mov    0x18(%esp),%ebx
580296:	43                   	inc    %ebx
580297:	89 5c 24 18          	mov    %ebx,0x18(%esp)
58029b:	ff 76 04             	push   0x4(%esi)
58029e:	e8 1d 4e f6 ff       	call   0x4e50c0
5802a3:	8b 7c 24 14          	mov    0x14(%esp),%edi
5802a7:	83 c4 04             	add    $0x4,%esp
5802aa:	3b d8                	cmp    %eax,%ebx
5802ac:	0f 8c 3e ff ff ff    	jl     0x5801f0
5802b2:	f7 45 18 00 02 00 00 	testl  $0x200,0x18(%ebp)
5802b9:	75 16                	jne    0x5802d1
5802bb:	ff 74 24 2c          	push   0x2c(%esp)
5802bf:	56                   	push   %esi
5802c0:	57                   	push   %edi
5802c1:	e8 6a 04 00 00       	call   0x580730
5802c6:	83 c4 0c             	add    $0xc,%esp
5802c9:	85 c0                	test   %eax,%eax
5802cb:	0f 84 28 01 00 00    	je     0x5803f9
5802d1:	f7 45 18 00 04 00 00 	testl  $0x400,0x18(%ebp)
5802d8:	8b df                	mov    %edi,%ebx
5802da:	74 4a                	je     0x580326
5802dc:	8b 7d 10             	mov    0x10(%ebp),%edi
5802df:	57                   	push   %edi
5802e0:	e8 db 4d f6 ff       	call   0x4e50c0
5802e5:	8b f0                	mov    %eax,%esi
5802e7:	83 c4 04             	add    $0x4,%esp
5802ea:	83 ee 01             	sub    $0x1,%esi
5802ed:	78 37                	js     0x580326
5802ef:	90                   	nop
5802f0:	56                   	push   %esi
5802f1:	57                   	push   %edi
5802f2:	e8 89 4f f6 ff       	call   0x4e5280
5802f7:	83 c4 08             	add    $0x8,%esp
5802fa:	8b 08                	mov    (%eax),%ecx
5802fc:	f6 01 03             	testb  $0x3,(%ecx)
5802ff:	74 20                	je     0x580321
580301:	8b 48 04             	mov    0x4(%eax),%ecx
580304:	68 93 01 00 00       	push   $0x193
580309:	68 c4 b6 65 00       	push   $0x65b6c4
58030e:	50                   	push   %eax
58030f:	ff 49 08             	decl   0x8(%ecx)
580312:	e8 69 04 f6 ff       	call   0x4e0780
580317:	56                   	push   %esi
580318:	57                   	push   %edi
580319:	e8 22 4a f6 ff       	call   0x4e4d40
58031e:	83 c4 14             	add    $0x14,%esp
580321:	83 ee 01             	sub    $0x1,%esi
580324:	79 ca                	jns    0x5802f0
580326:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
58032a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
580330:	8b 7b f4             	mov    -0xc(%ebx),%edi
580333:	83 c3 f0             	add    $0xfffffff0,%ebx
580336:	57                   	push   %edi
580337:	e8 84 4d f6 ff       	call   0x4e50c0
58033c:	8b f0                	mov    %eax,%esi
58033e:	83 c4 04             	add    $0x4,%esp
580341:	83 ee 01             	sub    $0x1,%esi
580344:	78 35                	js     0x58037b
580346:	56                   	push   %esi
580347:	57                   	push   %edi
580348:	e8 33 4f f6 ff       	call   0x4e5280
58034d:	83 c4 08             	add    $0x8,%esp
580350:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
580354:	75 20                	jne    0x580376
580356:	8b 48 04             	mov    0x4(%eax),%ecx
580359:	68 a0 01 00 00       	push   $0x1a0
58035e:	68 c4 b6 65 00       	push   $0x65b6c4
580363:	50                   	push   %eax
580364:	ff 49 08             	decl   0x8(%ecx)
580367:	e8 14 04 f6 ff       	call   0x4e0780
58036c:	56                   	push   %esi
58036d:	57                   	push   %edi
58036e:	e8 cd 49 f6 ff       	call   0x4e4d40
580373:	83 c4 14             	add    $0x14,%esp
580376:	83 ee 01             	sub    $0x1,%esi
580379:	79 cb                	jns    0x580346
58037b:	8b 43 08             	mov    0x8(%ebx),%eax
58037e:	8b c8                	mov    %eax,%ecx
580380:	85 c0                	test   %eax,%eax
580382:	74 2f                	je     0x5803b3
580384:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
580388:	75 29                	jne    0x5803b3
58038a:	8b 48 04             	mov    0x4(%eax),%ecx
58038d:	85 c9                	test   %ecx,%ecx
58038f:	74 06                	je     0x580397
580391:	ff 49 08             	decl   0x8(%ecx)
580394:	8b 43 08             	mov    0x8(%ebx),%eax
580397:	68 a7 01 00 00       	push   $0x1a7
58039c:	68 c4 b6 65 00       	push   $0x65b6c4
5803a1:	50                   	push   %eax
5803a2:	e8 d9 03 f6 ff       	call   0x4e0780
5803a7:	83 c4 0c             	add    $0xc,%esp
5803aa:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
5803b1:	33 c9                	xor    %ecx,%ecx
5803b3:	3b 5d 00             	cmp    0x0(%ebp),%ebx
5803b6:	0f 85 74 ff ff ff    	jne    0x580330
5803bc:	8b 6c 24 20          	mov    0x20(%esp),%ebp
5803c0:	85 c9                	test   %ecx,%ecx
5803c2:	74 3f                	je     0x580403
5803c4:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5803c8:	83 c5 10             	add    $0x10,%ebp
5803cb:	8b 44 24 2c          	mov    0x2c(%esp),%eax
5803cf:	41                   	inc    %ecx
5803d0:	8b 7c 24 10          	mov    0x10(%esp),%edi
5803d4:	83 c7 10             	add    $0x10,%edi
5803d7:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
5803db:	89 7c 24 10          	mov    %edi,0x10(%esp)
5803df:	89 6c 24 20          	mov    %ebp,0x20(%esp)
5803e3:	3b 48 04             	cmp    0x4(%eax),%ecx
5803e6:	0f 8c d8 fd ff ff    	jl     0x5801c4
5803ec:	5f                   	pop    %edi
5803ed:	5e                   	pop    %esi
5803ee:	5d                   	pop    %ebp
5803ef:	b8 01 00 00 00       	mov    $0x1,%eax
5803f4:	5b                   	pop    %ebx
5803f5:	83 c4 18             	add    $0x18,%esp
5803f8:	c3                   	ret
5803f9:	5f                   	pop    %edi
5803fa:	5e                   	pop    %esi
5803fb:	5d                   	pop    %ebp
5803fc:	33 c0                	xor    %eax,%eax
5803fe:	5b                   	pop    %ebx
5803ff:	83 c4 18             	add    $0x18,%esp
580402:	c3                   	ret
580403:	5f                   	pop    %edi
580404:	5e                   	pop    %esi
580405:	5d                   	pop    %ebp
580406:	b8 02 00 00 00       	mov    $0x2,%eax
58040b:	5b                   	pop    %ebx
58040c:	83 c4 18             	add    $0x18,%esp
58040f:	c3                   	ret
580410:	b8 14 00 00 00       	mov    $0x14,%eax
580415:	e8 96 13 05 00       	call   0x5d17b0
58041a:	53                   	push   %ebx
58041b:	55                   	push   %ebp
58041c:	56                   	push   %esi
58041d:	8b 74 24 28          	mov    0x28(%esp),%esi
580421:	57                   	push   %edi
580422:	56                   	push   %esi
580423:	e8 98 4c f6 ff       	call   0x4e50c0
580428:	8b 4c 24 34          	mov    0x34(%esp),%ecx
58042c:	83 c4 04             	add    $0x4,%esp
58042f:	f7 c1 00 01 00 00    	test   $0x100,%ecx
580435:	bf 00 00 00 00       	mov    $0x0,%edi
58043a:	bd 00 00 00 00       	mov    $0x0,%ebp
58043f:	8d 50 ff             	lea    -0x1(%eax),%edx
580442:	b8 00 00 00 00       	mov    $0x0,%eax
580447:	8d 5a 01             	lea    0x1(%edx),%ebx
58044a:	89 54 24 1c          	mov    %edx,0x1c(%esp)
58044e:	0f 44 fb             	cmove  %ebx,%edi
580451:	89 5c 24 20          	mov    %ebx,0x20(%esp)
580455:	f7 c1 00 02 00 00    	test   $0x200,%ecx
58045b:	0f 44 c3             	cmove  %ebx,%eax
58045e:	f7 c1 00 04 00 00    	test   $0x400,%ecx
580464:	89 44 24 10          	mov    %eax,0x10(%esp)
580468:	8b 44 24 28          	mov    0x28(%esp),%eax
58046c:	0f 44 eb             	cmove  %ebx,%ebp
58046f:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
580475:	85 d2                	test   %edx,%edx
580477:	75 0b                	jne    0x580484
580479:	5f                   	pop    %edi
58047a:	5e                   	pop    %esi
58047b:	5d                   	pop    %ebp
58047c:	8d 42 02             	lea    0x2(%edx),%eax
58047f:	5b                   	pop    %ebx
580480:	83 c4 14             	add    $0x14,%esp
580483:	c3                   	ret
580484:	8d 42 ff             	lea    -0x1(%edx),%eax
580487:	8b d8                	mov    %eax,%ebx
580489:	89 44 24 30          	mov    %eax,0x30(%esp)
58048d:	85 db                	test   %ebx,%ebx
58048f:	78 31                	js     0x5804c2
580491:	53                   	push   %ebx
580492:	56                   	push   %esi
580493:	e8 e8 4d f6 ff       	call   0x4e5280
580498:	6a 00                	push   $0x0
58049a:	8b f0                	mov    %eax,%esi
58049c:	6a ff                	push   $0xffffffff
58049e:	56                   	push   %esi
58049f:	e8 6c c0 fd ff       	call   0x55c510
5804a4:	56                   	push   %esi
5804a5:	e8 d6 12 ff ff       	call   0x571780
5804aa:	83 c4 18             	add    $0x18,%esp
5804ad:	85 c0                	test   %eax,%eax
5804af:	0f 84 93 01 00 00    	je     0x580648
5804b5:	83 eb 01             	sub    $0x1,%ebx
5804b8:	8b 74 24 2c          	mov    0x2c(%esp),%esi
5804bc:	79 d3                	jns    0x580491
5804be:	8b 44 24 30          	mov    0x30(%esp),%eax
5804c2:	8b f0                	mov    %eax,%esi
5804c4:	bb 01 00 00 00       	mov    $0x1,%ebx
5804c9:	85 f6                	test   %esi,%esi
5804cb:	78 75                	js     0x580542
5804cd:	0f 1f 00             	nopl   (%eax)
5804d0:	85 ff                	test   %edi,%edi
5804d2:	7f 05                	jg     0x5804d9
5804d4:	f6 c3 02             	test   $0x2,%bl
5804d7:	75 69                	jne    0x580542
5804d9:	56                   	push   %esi
5804da:	ff 74 24 30          	push   0x30(%esp)
5804de:	e8 9d 4d f6 ff       	call   0x4e5280
5804e3:	50                   	push   %eax
5804e4:	89 44 24 20          	mov    %eax,0x20(%esp)
5804e8:	e8 b3 c0 fd ff       	call   0x55c5a0
5804ed:	83 c4 0c             	add    $0xc,%esp
5804f0:	89 44 24 18          	mov    %eax,0x18(%esp)
5804f4:	a9 00 08 00 00       	test   $0x800,%eax
5804f9:	0f 85 9c 00 00 00    	jne    0x58059b
5804ff:	ff 74 24 14          	push   0x14(%esp)
580503:	e8 78 12 ff ff       	call   0x571780