591f6b:	e8 90 0f 05 00       	call   0x5e2f00
591f70:	83 c4 0c             	add    $0xc,%esp
591f73:	01 3e                	add    %edi,(%esi)
591f75:	8b c7                	mov    %edi,%eax
591f77:	5f                   	pop    %edi
591f78:	5e                   	pop    %esi
591f79:	c3                   	ret
591f7a:	cc                   	int3
591f7b:	cc                   	int3
591f7c:	cc                   	int3
591f7d:	cc                   	int3
591f7e:	cc                   	int3
591f7f:	cc                   	int3
591f80:	56                   	push   %esi
591f81:	68 8f 00 00 00       	push   $0x8f
591f86:	68 7c 7c 6c 00       	push   $0x6c7c7c
591f8b:	6a 14                	push   $0x14
591f8d:	e8 1e e2 f0 ff       	call   0x4a01b0
591f92:	8b f0                	mov    %eax,%esi
591f94:	83 c4 0c             	add    $0xc,%esp
591f97:	85 f6                	test   %esi,%esi
591f99:	74 39                	je     0x591fd4
591f9b:	e8 60 c6 f1 ff       	call   0x4ae600
591fa0:	89 06                	mov    %eax,(%esi)
591fa2:	85 c0                	test   %eax,%eax
591fa4:	74 2e                	je     0x591fd4
591fa6:	e8 e5 c6 f3 ff       	call   0x4ce690
591fab:	89 46 08             	mov    %eax,0x8(%esi)
591fae:	85 c0                	test   %eax,%eax
591fb0:	74 22                	je     0x591fd4
591fb2:	8b 44 24 08          	mov    0x8(%esp),%eax
591fb6:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
591fbd:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
591fc4:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
591fcb:	89 30                	mov    %esi,(%eax)
591fcd:	b8 01 00 00 00       	mov    $0x1,%eax
591fd2:	5e                   	pop    %esi
591fd3:	c3                   	ret
591fd4:	68 9d 00 00 00       	push   $0x9d
591fd9:	68 7c 7c 6c 00       	push   $0x6c7c7c
591fde:	6a 41                	push   $0x41
591fe0:	68 ab 00 00 00       	push   $0xab
591fe5:	6a 0d                	push   $0xd
591fe7:	e8 b4 f4 f0 ff       	call   0x4a14a0
591fec:	83 c4 14             	add    $0x14,%esp
591fef:	85 f6                	test   %esi,%esi
591ff1:	74 18                	je     0x59200b
591ff3:	8b 06                	mov    (%esi),%eax
591ff5:	85 c0                	test   %eax,%eax
591ff7:	74 09                	je     0x592002
591ff9:	50                   	push   %eax
591ffa:	e8 71 c4 f1 ff       	call   0x4ae470
591fff:	83 c4 04             	add    $0x4,%esp
592002:	56                   	push   %esi
592003:	e8 28 e1 f0 ff       	call   0x4a0130
592008:	83 c4 04             	add    $0x4,%esp
59200b:	33 c0                	xor    %eax,%eax
59200d:	5e                   	pop    %esi
59200e:	c3                   	ret
59200f:	cc                   	int3
592010:	57                   	push   %edi
592011:	8b 7c 24 08          	mov    0x8(%esp),%edi
592015:	85 ff                	test   %edi,%edi
592017:	74 3e                	je     0x592057
592019:	56                   	push   %esi
59201a:	8b 37                	mov    (%edi),%esi
59201c:	85 f6                	test   %esi,%esi
59201e:	74 36                	je     0x592056
592020:	ff 76 08             	push   0x8(%esi)
592023:	e8 58 c4 f3 ff       	call   0x4ce480
592028:	68 d0 20 59 00       	push   $0x5920d0
59202d:	ff 36                	push   (%esi)
59202f:	e8 0c c6 f1 ff       	call   0x4ae640
592034:	8b 46 0c             	mov    0xc(%esi),%eax
592037:	83 c4 0c             	add    $0xc,%esp
59203a:	85 c0                	test   %eax,%eax
59203c:	74 09                	je     0x592047
59203e:	50                   	push   %eax
59203f:	e8 ec e0 f0 ff       	call   0x4a0130
592044:	83 c4 04             	add    $0x4,%esp
592047:	56                   	push   %esi
592048:	e8 e3 e0 f0 ff       	call   0x4a0130
59204d:	83 c4 04             	add    $0x4,%esp
592050:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
592056:	5e                   	pop    %esi
592057:	5f                   	pop    %edi
592058:	c3                   	ret
592059:	cc                   	int3
59205a:	cc                   	int3
59205b:	cc                   	int3
59205c:	cc                   	int3
59205d:	cc                   	int3
59205e:	cc                   	int3
59205f:	cc                   	int3
592060:	8b 44 24 14          	mov    0x14(%esp),%eax
592064:	ff 70 04             	push   0x4(%eax)
592067:	8b 44 24 0c          	mov    0xc(%esp),%eax
59206b:	ff 74 24 10          	push   0x10(%esp)
59206f:	ff 30                	push   (%eax)
592071:	ff 74 24 10          	push   0x10(%esp)
592075:	e8 a6 ab ff ff       	call   0x58cc20
59207a:	33 d2                	xor    %edx,%edx
59207c:	83 c4 10             	add    $0x10,%esp
59207f:	85 c0                	test   %eax,%eax
592081:	b9 02 00 00 00       	mov    $0x2,%ecx
592086:	0f 4e ca             	cmovle %edx,%ecx
592089:	8b c1                	mov    %ecx,%eax
59208b:	c3                   	ret
59208c:	cc                   	int3
59208d:	cc                   	int3
59208e:	cc                   	int3
59208f:	cc                   	int3
592090:	b8 a4 7b 6c 00       	mov    $0x6c7ba4,%eax
592095:	c3                   	ret
592096:	cc                   	int3
592097:	cc                   	int3
592098:	cc                   	int3
592099:	cc                   	int3
59209a:	cc                   	int3
59209b:	cc                   	int3
59209c:	cc                   	int3
59209d:	cc                   	int3
59209e:	cc                   	int3
59209f:	cc                   	int3
5920a0:	b8 74 7b 6c 00       	mov    $0x6c7b74,%eax
5920a5:	c3                   	ret
5920a6:	cc                   	int3
5920a7:	cc                   	int3
5920a8:	cc                   	int3
5920a9:	cc                   	int3
5920aa:	cc                   	int3
5920ab:	cc                   	int3
5920ac:	cc                   	int3
5920ad:	cc                   	int3
5920ae:	cc                   	int3
5920af:	cc                   	int3
5920b0:	ff 74 24 04          	push   0x4(%esp)
5920b4:	68 74 7b 6c 00       	push   $0x6c7b74
5920b9:	e8 92 c8 fe ff       	call   0x57e950
5920be:	83 c4 08             	add    $0x8,%esp
5920c1:	c3                   	ret
5920c2:	cc                   	int3
5920c3:	cc                   	int3
5920c4:	cc                   	int3
5920c5:	cc                   	int3
5920c6:	cc                   	int3
5920c7:	cc                   	int3
5920c8:	cc                   	int3
5920c9:	cc                   	int3
5920ca:	cc                   	int3
5920cb:	cc                   	int3
5920cc:	cc                   	int3
5920cd:	cc                   	int3
5920ce:	cc                   	int3
5920cf:	cc                   	int3
5920d0:	68 74 7b 6c 00       	push   $0x6c7b74
5920d5:	ff 74 24 08          	push   0x8(%esp)
5920d9:	e8 b2 fd f1 ff       	call   0x4b1e90
5920de:	83 c4 08             	add    $0x8,%esp
5920e1:	c3                   	ret
5920e2:	cc                   	int3
5920e3:	cc                   	int3
5920e4:	cc                   	int3
5920e5:	cc                   	int3
5920e6:	cc                   	int3
5920e7:	cc                   	int3
5920e8:	cc                   	int3
5920e9:	cc                   	int3
5920ea:	cc                   	int3
5920eb:	cc                   	int3
5920ec:	cc                   	int3
5920ed:	cc                   	int3
5920ee:	cc                   	int3
5920ef:	cc                   	int3
5920f0:	68 74 7b 6c 00       	push   $0x6c7b74
5920f5:	e8 56 9a f3 ff       	call   0x4cbb50
5920fa:	83 c4 04             	add    $0x4,%esp
5920fd:	c3                   	ret
5920fe:	cc                   	int3
5920ff:	cc                   	int3
592100:	ff 74 24 04          	push   0x4(%esp)
592104:	68 0c 7c 6c 00       	push   $0x6c7c0c
592109:	e8 42 c8 fe ff       	call   0x57e950
59210e:	83 c4 08             	add    $0x8,%esp
592111:	c3                   	ret
592112:	cc                   	int3
592113:	cc                   	int3
592114:	cc                   	int3
592115:	cc                   	int3
592116:	cc                   	int3
592117:	cc                   	int3
592118:	cc                   	int3
592119:	cc                   	int3
59211a:	cc                   	int3
59211b:	cc                   	int3
59211c:	cc                   	int3
59211d:	cc                   	int3
59211e:	cc                   	int3
59211f:	cc                   	int3
592120:	68 0c 7c 6c 00       	push   $0x6c7c0c
592125:	ff 74 24 08          	push   0x8(%esp)
592129:	e8 62 fd f1 ff       	call   0x4b1e90
59212e:	83 c4 08             	add    $0x8,%esp
592131:	c3                   	ret
592132:	cc                   	int3
592133:	cc                   	int3
592134:	cc                   	int3
592135:	cc                   	int3
592136:	cc                   	int3
592137:	cc                   	int3
592138:	cc                   	int3
592139:	cc                   	int3
59213a:	cc                   	int3
59213b:	cc                   	int3
59213c:	cc                   	int3
59213d:	cc                   	int3
59213e:	cc                   	int3
59213f:	cc                   	int3
592140:	b8 0c 7c 6c 00       	mov    $0x6c7c0c,%eax
592145:	c3                   	ret
592146:	cc                   	int3
592147:	cc                   	int3
592148:	cc                   	int3
592149:	cc                   	int3
59214a:	cc                   	int3
59214b:	cc                   	int3
59214c:	cc                   	int3
59214d:	cc                   	int3
59214e:	cc                   	int3
59214f:	cc                   	int3
592150:	68 0c 7c 6c 00       	push   $0x6c7c0c
592155:	e8 f6 99 f3 ff       	call   0x4cbb50
59215a:	83 c4 04             	add    $0x4,%esp
59215d:	c3                   	ret
59215e:	cc                   	int3
59215f:	cc                   	int3
592160:	56                   	push   %esi
592161:	8b 74 24 0c          	mov    0xc(%esp),%esi
592165:	ff 76 04             	push   0x4(%esi)
592168:	e8 03 a7 f3 ff       	call   0x4cc870
59216d:	83 c4 04             	add    $0x4,%esp
592170:	a9 56 29 00 00       	test   $0x2956,%eax
592175:	75 15                	jne    0x59218c
592177:	56                   	push   %esi
592178:	ff 74 24 0c          	push   0xc(%esp)
59217c:	e8 5f f7 f1 ff       	call   0x4b18e0
592181:	83 c4 08             	add    $0x8,%esp
592184:	f7 d8                	neg    %eax
592186:	1b c0                	sbb    %eax,%eax
592188:	f7 d8                	neg    %eax
59218a:	5e                   	pop    %esi
59218b:	c3                   	ret
59218c:	53                   	push   %ebx
59218d:	55                   	push   %ebp
59218e:	57                   	push   %edi
59218f:	8b 7c 24 14          	mov    0x14(%esp),%edi
592193:	56                   	push   %esi
592194:	8d 6f 08             	lea    0x8(%edi),%ebp
592197:	c7 47 04 0c 00 00 00 	movl   $0xc,0x4(%edi)
59219e:	55                   	push   %ebp
59219f:	e8 fc a9 ff ff       	call   0x58cba0
5921a4:	8b d8                	mov    %eax,%ebx
5921a6:	83 c4 08             	add    $0x8,%esp
5921a9:	89 1f                	mov    %ebx,(%edi)
5921ab:	83 fb ff             	cmp    $0xffffffff,%ebx
5921ae:	75 07                	jne    0x5921b7
5921b0:	5f                   	pop    %edi
5921b1:	5d                   	pop    %ebp
5921b2:	5b                   	pop    %ebx
5921b3:	33 c0                	xor    %eax,%eax
5921b5:	5e                   	pop    %esi
5921b6:	c3                   	ret
5921b7:	8b 75 00             	mov    0x0(%ebp),%esi
5921ba:	85 db                	test   %ebx,%ebx
5921bc:	7e 1e                	jle    0x5921dc
5921be:	66 90                	xchg   %ax,%ax
5921c0:	8a 06                	mov    (%esi),%al
5921c2:	84 c0                	test   %al,%al
5921c4:	78 16                	js     0x5921dc
5921c6:	0f b6 c0             	movzbl %al,%eax
5921c9:	50                   	push   %eax
5921ca:	e8 14 4d 06 00       	call   0x5f6ee3
5921cf:	83 c4 04             	add    $0x4,%esp
5921d2:	85 c0                	test   %eax,%eax
5921d4:	74 06                	je     0x5921dc
5921d6:	4b                   	dec    %ebx
5921d7:	46                   	inc    %esi
5921d8:	85 db                	test   %ebx,%ebx
5921da:	7f e4                	jg     0x5921c0
5921dc:	8d 7e ff             	lea    -0x1(%esi),%edi
5921df:	03 fb                	add    %ebx,%edi
5921e1:	85 db                	test   %ebx,%ebx
5921e3:	7e 1c                	jle    0x592201
5921e5:	8a 07                	mov    (%edi),%al
5921e7:	84 c0                	test   %al,%al
5921e9:	78 16                	js     0x592201
5921eb:	0f b6 c0             	movzbl %al,%eax
5921ee:	50                   	push   %eax
5921ef:	e8 ef 4c 06 00       	call   0x5f6ee3
5921f4:	83 c4 04             	add    $0x4,%esp
5921f7:	85 c0                	test   %eax,%eax
5921f9:	74 06                	je     0x592201
5921fb:	4b                   	dec    %ebx
5921fc:	4f                   	dec    %edi
5921fd:	85 db                	test   %ebx,%ebx
5921ff:	7f e4                	jg     0x5921e5
592201:	8b 6d 00             	mov    0x0(%ebp),%ebp
592204:	33 ff                	xor    %edi,%edi
592206:	85 db                	test   %ebx,%ebx
592208:	7e 57                	jle    0x592261
59220a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
592210:	8a 06                	mov    (%esi),%al
592212:	84 c0                	test   %al,%al
592214:	78 41                	js     0x592257
592216:	0f b6 c0             	movzbl %al,%eax
592219:	50                   	push   %eax
59221a:	e8 c4 4c 06 00       	call   0x5f6ee3
59221f:	83 c4 04             	add    $0x4,%esp
592222:	85 c0                	test   %eax,%eax
592224:	74 25                	je     0x59224b
592226:	c6 45 00 20          	movb   $0x20,0x0(%ebp)
59222a:	45                   	inc    %ebp
59222b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
592230:	8a 46 01             	mov    0x1(%esi),%al
592233:	46                   	inc    %esi
592234:	47                   	inc    %edi
592235:	84 c0                	test   %al,%al
592237:	78 24                	js     0x59225d
592239:	0f b6 c0             	movzbl %al,%eax
59223c:	50                   	push   %eax
59223d:	e8 a1 4c 06 00       	call   0x5f6ee3
592242:	83 c4 04             	add    $0x4,%esp
592245:	85 c0                	test   %eax,%eax
592247:	75 e7                	jne    0x592230
592249:	eb 12                	jmp    0x59225d
59224b:	0f b6 06             	movzbl (%esi),%eax
59224e:	50                   	push   %eax
59224f:	e8 d4 56 06 00       	call   0x5f7928
592254:	83 c4 04             	add    $0x4,%esp
592257:	88 45 00             	mov    %al,0x0(%ebp)
59225a:	46                   	inc    %esi
59225b:	45                   	inc    %ebp
59225c:	47                   	inc    %edi
59225d:	3b fb                	cmp    %ebx,%edi
59225f:	7c af                	jl     0x592210
592261:	8b 44 24 14          	mov    0x14(%esp),%eax
592265:	5f                   	pop    %edi
592266:	2b 68 08             	sub    0x8(%eax),%ebp
592269:	89 28                	mov    %ebp,(%eax)
59226b:	b8 01 00 00 00       	mov    $0x1,%eax