588f8d:	ff d0                	call   *%eax
588f8f:	83 c4 10             	add    $0x10,%esp
588f92:	83 f8 fe             	cmp    $0xfffffffe,%eax
588f95:	75 1e                	jne    0x588fb5
588f97:	68 00 01 00 00       	push   $0x100
588f9c:	68 20 3c 6c 00       	push   $0x6c3c20
588fa1:	6a 7d                	push   $0x7d
588fa3:	68 aa 00 00 00       	push   $0xaa
588fa8:	6a 2e                	push   $0x2e
588faa:	e8 f1 84 f1 ff       	call   0x4a14a0
588faf:	83 c4 14             	add    $0x14,%esp
588fb2:	33 c0                	xor    %eax,%eax
588fb4:	c3                   	ret
588fb5:	85 c0                	test   %eax,%eax
588fb7:	7f 1e                	jg     0x588fd7
588fb9:	68 04 01 00 00       	push   $0x104
588fbe:	68 20 3c 6c 00       	push   $0x6c3c20
588fc3:	6a 6f                	push   $0x6f
588fc5:	68 aa 00 00 00       	push   $0xaa
588fca:	6a 2e                	push   $0x2e
588fcc:	e8 cf 84 f1 ff       	call   0x4a14a0
588fd1:	83 c4 14             	add    $0x14,%esp
588fd4:	33 c0                	xor    %eax,%eax
588fd6:	c3                   	ret
588fd7:	b8 01 00 00 00       	mov    $0x1,%eax
588fdc:	c3                   	ret
588fdd:	cc                   	int3
588fde:	cc                   	int3
588fdf:	cc                   	int3
588fe0:	56                   	push   %esi
588fe1:	8b 74 24 08          	mov    0x8(%esp),%esi
588fe5:	57                   	push   %edi
588fe6:	33 ff                	xor    %edi,%edi
588fe8:	ff 76 0c             	push   0xc(%esi)
588feb:	e8 20 56 f2 ff       	call   0x4ae610
588ff0:	83 c4 04             	add    $0x4,%esp
588ff3:	85 c0                	test   %eax,%eax
588ff5:	7e 52                	jle    0x589049
588ff7:	57                   	push   %edi
588ff8:	ff 76 0c             	push   0xc(%esi)
588ffb:	e8 30 57 f2 ff       	call   0x4ae730
589000:	83 c4 08             	add    $0x8,%esp
589003:	8b 00                	mov    (%eax),%eax
589005:	83 f8 04             	cmp    $0x4,%eax
589008:	75 0d                	jne    0x589017
58900a:	83 3e 05             	cmpl   $0x5,(%esi)
58900d:	7d 2a                	jge    0x589039
58900f:	c7 06 05 00 00 00    	movl   $0x5,(%esi)
589015:	eb 22                	jmp    0x589039
589017:	83 f8 03             	cmp    $0x3,%eax
58901a:	75 0d                	jne    0x589029
58901c:	83 3e 04             	cmpl   $0x4,(%esi)
58901f:	7d 18                	jge    0x589039
589021:	c7 06 04 00 00 00    	movl   $0x4,(%esi)
589027:	eb 10                	jmp    0x589039
589029:	83 f8 02             	cmp    $0x2,%eax
58902c:	75 0b                	jne    0x589039
58902e:	83 3e 03             	cmpl   $0x3,(%esi)
589031:	7d 06                	jge    0x589039
589033:	c7 06 03 00 00 00    	movl   $0x3,(%esi)
589039:	ff 76 0c             	push   0xc(%esi)
58903c:	47                   	inc    %edi
58903d:	e8 ce 55 f2 ff       	call   0x4ae610
589042:	83 c4 04             	add    $0x4,%esp
589045:	3b f8                	cmp    %eax,%edi
589047:	7c ae                	jl     0x588ff7
589049:	ff 76 10             	push   0x10(%esi)
58904c:	33 ff                	xor    %edi,%edi
58904e:	e8 bd 55 f2 ff       	call   0x4ae610
589053:	83 c4 04             	add    $0x4,%esp
589056:	85 c0                	test   %eax,%eax
589058:	7e 32                	jle    0x58908c
58905a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
589060:	57                   	push   %edi
589061:	ff 76 10             	push   0x10(%esi)
589064:	e8 c7 56 f2 ff       	call   0x4ae730
589069:	83 c4 08             	add    $0x8,%esp
58906c:	83 38 01             	cmpl   $0x1,(%eax)
58906f:	75 0b                	jne    0x58907c
589071:	83 3e 05             	cmpl   $0x5,(%esi)
589074:	7d 06                	jge    0x58907c
589076:	c7 06 05 00 00 00    	movl   $0x5,(%esi)
58907c:	ff 76 10             	push   0x10(%esi)
58907f:	47                   	inc    %edi
589080:	e8 8b 55 f2 ff       	call   0x4ae610
589085:	83 c4 04             	add    $0x4,%esp
589088:	3b f8                	cmp    %eax,%edi
58908a:	7c d4                	jl     0x589060
58908c:	8b 46 08             	mov    0x8(%esi),%eax
58908f:	ff 30                	push   (%eax)
589091:	e8 4a e9 f1 ff       	call   0x4a79e0
589096:	83 c4 04             	add    $0x4,%esp
589099:	83 f8 15             	cmp    $0x15,%eax
58909c:	74 0b                	je     0x5890a9
58909e:	83 3e 03             	cmpl   $0x3,(%esi)
5890a1:	7d 06                	jge    0x5890a9
5890a3:	c7 06 03 00 00 00    	movl   $0x3,(%esi)
5890a9:	ff 76 14             	push   0x14(%esi)
5890ac:	33 ff                	xor    %edi,%edi
5890ae:	e8 5d 55 f2 ff       	call   0x4ae610
5890b3:	83 c4 04             	add    $0x4,%esp
5890b6:	85 c0                	test   %eax,%eax
5890b8:	7e 4d                	jle    0x589107
5890ba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5890c0:	57                   	push   %edi
5890c1:	ff 76 14             	push   0x14(%esi)
5890c4:	e8 67 56 f2 ff       	call   0x4ae730
5890c9:	83 c4 08             	add    $0x8,%esp
5890cc:	8b 48 04             	mov    0x4(%eax),%ecx
5890cf:	83 39 01             	cmpl   $0x1,(%ecx)
5890d2:	75 18                	jne    0x5890ec
5890d4:	83 38 03             	cmpl   $0x3,(%eax)
5890d7:	7d 06                	jge    0x5890df
5890d9:	c7 00 03 00 00 00    	movl   $0x3,(%eax)
5890df:	83 3e 03             	cmpl   $0x3,(%esi)
5890e2:	7d 13                	jge    0x5890f7
5890e4:	c7 06 03 00 00 00    	movl   $0x3,(%esi)
5890ea:	eb 0b                	jmp    0x5890f7
5890ec:	83 38 01             	cmpl   $0x1,(%eax)
5890ef:	7d 06                	jge    0x5890f7
5890f1:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
5890f7:	ff 76 14             	push   0x14(%esi)
5890fa:	47                   	inc    %edi
5890fb:	e8 10 55 f2 ff       	call   0x4ae610
589100:	83 c4 04             	add    $0x4,%esp
589103:	3b f8                	cmp    %eax,%edi
589105:	7c b9                	jl     0x5890c0
589107:	83 3e 01             	cmpl   $0x1,(%esi)
58910a:	7d 06                	jge    0x589112
58910c:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
589112:	5f                   	pop    %edi
589113:	5e                   	pop    %esi
589114:	c3                   	ret
589115:	cc                   	int3
589116:	cc                   	int3
589117:	cc                   	int3
589118:	cc                   	int3
589119:	cc                   	int3
58911a:	cc                   	int3
58911b:	cc                   	int3
58911c:	cc                   	int3
58911d:	cc                   	int3
58911e:	cc                   	int3
58911f:	cc                   	int3
589120:	56                   	push   %esi
589121:	8b 74 24 08          	mov    0x8(%esp),%esi
589125:	85 f6                	test   %esi,%esi
589127:	74 28                	je     0x589151
589129:	8b 06                	mov    (%esi),%eax
58912b:	85 c0                	test   %eax,%eax
58912d:	74 09                	je     0x589138
58912f:	50                   	push   %eax
589130:	e8 ab a0 f2 ff       	call   0x4b31e0
589135:	83 c4 04             	add    $0x4,%esp
589138:	8b 46 04             	mov    0x4(%esi),%eax
58913b:	85 c0                	test   %eax,%eax
58913d:	74 09                	je     0x589148
58913f:	50                   	push   %eax
589140:	e8 9b a0 f2 ff       	call   0x4b31e0
589145:	83 c4 04             	add    $0x4,%esp
589148:	56                   	push   %esi
589149:	e8 e2 6f f1 ff       	call   0x4a0130
58914e:	83 c4 04             	add    $0x4,%esp
589151:	5e                   	pop    %esi
589152:	c3                   	ret
589153:	cc                   	int3
589154:	cc                   	int3
589155:	cc                   	int3
589156:	cc                   	int3
589157:	cc                   	int3
589158:	cc                   	int3
589159:	cc                   	int3
58915a:	cc                   	int3
58915b:	cc                   	int3
58915c:	cc                   	int3
58915d:	cc                   	int3
58915e:	cc                   	int3
58915f:	cc                   	int3
589160:	6a 5d                	push   $0x5d
589162:	68 38 3c 6c 00       	push   $0x6c3c38
589167:	6a 08                	push   $0x8
589169:	e8 42 70 f1 ff       	call   0x4a01b0
58916e:	83 c4 0c             	add    $0xc,%esp
589171:	85 c0                	test   %eax,%eax
589173:	75 01                	jne    0x589176
589175:	c3                   	ret
589176:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
58917c:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
589183:	c3                   	ret
589184:	cc                   	int3
589185:	cc                   	int3
589186:	cc                   	int3
589187:	cc                   	int3
589188:	cc                   	int3
589189:	cc                   	int3
58918a:	cc                   	int3
58918b:	cc                   	int3
58918c:	cc                   	int3
58918d:	cc                   	int3
58918e:	cc                   	int3
58918f:	cc                   	int3
589190:	8b 44 24 0c          	mov    0xc(%esp),%eax
589194:	8b 48 3c             	mov    0x3c(%eax),%ecx
589197:	89 44 24 0c          	mov    %eax,0xc(%esp)
58919b:	8b 41 04             	mov    0x4(%ecx),%eax
58919e:	ff e0                	jmp    *%eax
5891a0:	8b 44 24 04          	mov    0x4(%esp),%eax
5891a4:	8b 48 3c             	mov    0x3c(%eax),%ecx
5891a7:	89 44 24 04          	mov    %eax,0x4(%esp)
5891ab:	8b 41 08             	mov    0x8(%ecx),%eax
5891ae:	ff e0                	jmp    *%eax
5891b0:	8b 44 24 04          	mov    0x4(%esp),%eax
5891b4:	85 c0                	test   %eax,%eax
5891b6:	75 13                	jne    0x5891cb
5891b8:	e8 e3 36 fe ff       	call   0x56c8a0
5891bd:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5891c1:	89 01                	mov    %eax,(%ecx)
5891c3:	f7 d8                	neg    %eax
5891c5:	1b c0                	sbb    %eax,%eax
5891c7:	83 e0 02             	and    $0x2,%eax
5891ca:	c3                   	ret
5891cb:	83 f8 02             	cmp    $0x2,%eax
5891ce:	75 1c                	jne    0x5891ec
5891d0:	56                   	push   %esi
5891d1:	8b 74 24 0c          	mov    0xc(%esp),%esi
5891d5:	ff 36                	push   (%esi)
5891d7:	e8 d4 35 fe ff       	call   0x56c7b0
5891dc:	83 c4 04             	add    $0x4,%esp
5891df:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
5891e5:	b8 02 00 00 00       	mov    $0x2,%eax
5891ea:	5e                   	pop    %esi
5891eb:	c3                   	ret
5891ec:	b8 01 00 00 00       	mov    $0x1,%eax
5891f1:	c3                   	ret
5891f2:	cc                   	int3
5891f3:	cc                   	int3
5891f4:	cc                   	int3
5891f5:	cc                   	int3
5891f6:	cc                   	int3
5891f7:	cc                   	int3
5891f8:	cc                   	int3
5891f9:	cc                   	int3
5891fa:	cc                   	int3
5891fb:	cc                   	int3
5891fc:	cc                   	int3
5891fd:	cc                   	int3
5891fe:	cc                   	int3
5891ff:	cc                   	int3
589200:	b8 e8 3c 6c 00       	mov    $0x6c3ce8,%eax
589205:	c3                   	ret
589206:	cc                   	int3
589207:	cc                   	int3
589208:	cc                   	int3
589209:	cc                   	int3
58920a:	cc                   	int3
58920b:	cc                   	int3
58920c:	cc                   	int3
58920d:	cc                   	int3
58920e:	cc                   	int3
58920f:	cc                   	int3
589210:	68 a4 3c 6c 00       	push   $0x6c3ca4
589215:	ff 74 24 10          	push   0x10(%esp)
589219:	ff 74 24 10          	push   0x10(%esp)
58921d:	ff 74 24 10          	push   0x10(%esp)
589221:	e8 1a 2e f4 ff       	call   0x4cc040
589226:	83 c4 10             	add    $0x10,%esp
589229:	c3                   	ret
58922a:	cc                   	int3
58922b:	cc                   	int3
58922c:	cc                   	int3
58922d:	cc                   	int3
58922e:	cc                   	int3
58922f:	cc                   	int3
589230:	56                   	push   %esi
589231:	e8 6a 36 fe ff       	call   0x56c8a0
589236:	8b f0                	mov    %eax,%esi
589238:	85 f6                	test   %esi,%esi
58923a:	75 02                	jne    0x58923e
58923c:	5e                   	pop    %esi
58923d:	c3                   	ret
58923e:	57                   	push   %edi
58923f:	68 04 3d 6c 00       	push   $0x6c3d04
589244:	ff 74 24 18          	push   0x18(%esp)
589248:	ff 74 24 18          	push   0x18(%esp)
58924c:	6a 00                	push   $0x0
58924e:	e8 ed 2d f4 ff       	call   0x4cc040
589253:	8b f8                	mov    %eax,%edi
589255:	83 c4 10             	add    $0x10,%esp
589258:	85 ff                	test   %edi,%edi
58925a:	75 0e                	jne    0x58926a
58925c:	56                   	push   %esi
58925d:	e8 4e 35 fe ff       	call   0x56c7b0
589262:	83 c4 04             	add    $0x4,%esp
589265:	33 c0                	xor    %eax,%eax
589267:	5f                   	pop    %edi
589268:	5e                   	pop    %esi
589269:	c3                   	ret
58926a:	53                   	push   %ebx
58926b:	8b 5c 24 10          	mov    0x10(%esp),%ebx
58926f:	85 db                	test   %ebx,%ebx
589271:	74 11                	je     0x589284
589273:	8b 03                	mov    (%ebx),%eax
589275:	85 c0                	test   %eax,%eax
589277:	74 09                	je     0x589282
589279:	50                   	push   %eax
58927a:	e8 31 35 fe ff       	call   0x56c7b0
58927f:	83 c4 04             	add    $0x4,%esp
589282:	89 33                	mov    %esi,(%ebx)
589284:	8b 07                	mov    (%edi),%eax
589286:	89 46 08             	mov    %eax,0x8(%esi)
589289:	8b 47 04             	mov    0x4(%edi),%eax
58928c:	89 46 24             	mov    %eax,0x24(%esi)
58928f:	8b 47 08             	mov    0x8(%edi),%eax
589292:	89 46 0c             	mov    %eax,0xc(%esi)
589295:	8b 47 0c             	mov    0xc(%edi),%eax
589298:	89 46 28             	mov    %eax,0x28(%esi)
58929b:	8b 47 10             	mov    0x10(%edi),%eax
58929e:	5b                   	pop    %ebx
58929f:	85 c0                	test   %eax,%eax
5892a1:	74 43                	je     0x5892e6
5892a3:	8b 00                	mov    (%eax),%eax
5892a5:	8b 40 08             	mov    0x8(%eax),%eax
5892a8:	89 46 2c             	mov    %eax,0x2c(%esi)
5892ab:	8b 47 10             	mov    0x10(%edi),%eax
5892ae:	8b 00                	mov    (%eax),%eax
5892b0:	8b 00                	mov    (%eax),%eax
5892b2:	89 46 30             	mov    %eax,0x30(%esi)
5892b5:	8b 47 10             	mov    0x10(%edi),%eax
5892b8:	8b 40 04             	mov    0x4(%eax),%eax
5892bb:	89 46 34             	mov    %eax,0x34(%esi)
5892be:	8b 47 10             	mov    0x10(%edi),%eax
5892c1:	8b 00                	mov    (%eax),%eax
5892c3:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
5892ca:	8b 47 10             	mov    0x10(%edi),%eax
5892cd:	ff 30                	push   (%eax)
5892cf:	e8 2c a8 f2 ff       	call   0x4b3b00
5892d4:	ff 77 10             	push   0x10(%edi)
5892d7:	e8 54 6e f1 ff       	call   0x4a0130
5892dc:	83 c4 08             	add    $0x8,%esp
5892df:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
5892e6:	57                   	push   %edi
5892e7:	e8 44 6e f1 ff       	call   0x4a0130
5892ec:	83 c4 04             	add    $0x4,%esp
5892ef:	8b c6                	mov    %esi,%eax
5892f1:	5f                   	pop    %edi
5892f2:	5e                   	pop    %esi
5892f3:	c3                   	ret
5892f4:	cc                   	int3
5892f5:	cc                   	int3
5892f6:	cc                   	int3