58ef33:	3b e8                	cmp    %eax,%ebp
58ef35:	75 11                	jne    0x58ef48
58ef37:	83 fa 02             	cmp    $0x2,%edx
58ef3a:	74 1e                	je     0x58ef5a
58ef3c:	8b 46 04             	mov    0x4(%esi),%eax
58ef3f:	3b d0                	cmp    %eax,%edx
58ef41:	74 17                	je     0x58ef5a
58ef43:	83 f8 02             	cmp    $0x2,%eax
58ef46:	74 12                	je     0x58ef5a
58ef48:	41                   	inc    %ecx
58ef49:	83 c6 24             	add    $0x24,%esi
58ef4c:	3b cb                	cmp    %ebx,%ecx
58ef4e:	72 e0                	jb     0x58ef30
58ef50:	5f                   	pop    %edi
58ef51:	5e                   	pop    %esi
58ef52:	5d                   	pop    %ebp
58ef53:	b8 01 00 00 00       	mov    $0x1,%eax
58ef58:	5b                   	pop    %ebx
58ef59:	c3                   	ret
58ef5a:	8b 5c 24 18          	mov    0x18(%esp),%ebx
58ef5e:	53                   	push   %ebx
58ef5f:	ff 76 08             	push   0x8(%esi)
58ef62:	57                   	push   %edi
58ef63:	e8 98 64 01 00       	call   0x5a5400
58ef68:	83 c4 0c             	add    $0xc,%esp
58ef6b:	85 c0                	test   %eax,%eax
58ef6d:	74 e1                	je     0x58ef50
58ef6f:	f7 c3 00 07 00 00    	test   $0x700,%ebx
58ef75:	74 29                	je     0x58efa0
58ef77:	f6 46 0c 02          	testb  $0x2,0xc(%esi)
58ef7b:	75 23                	jne    0x58efa0
58ef7d:	68 8f 00 00 00       	push   $0x8f
58ef82:	68 28 6f 66 00       	push   $0x666f28
58ef87:	6a 6e                	push   $0x6e
58ef89:	68 2b 02 00 00       	push   $0x22b
58ef8e:	6a 6e                	push   $0x6e
58ef90:	57                   	push   %edi
58ef91:	e8 7a 01 00 00       	call   0x58f110
58ef96:	83 c4 18             	add    $0x18,%esp
58ef99:	33 c0                	xor    %eax,%eax
58ef9b:	5f                   	pop    %edi
58ef9c:	5e                   	pop    %esi
58ef9d:	5d                   	pop    %ebp
58ef9e:	5b                   	pop    %ebx
58ef9f:	c3                   	ret
58efa0:	84 db                	test   %bl,%bl
58efa2:	79 04                	jns    0x58efa8
58efa4:	83 4e 0c 01          	orl    $0x1,0xc(%esi)
58efa8:	8b 46 1c             	mov    0x1c(%esi),%eax
58efab:	85 c0                	test   %eax,%eax
58efad:	74 a1                	je     0x58ef50
58efaf:	ff 76 20             	push   0x20(%esi)
58efb2:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
58efb6:	51                   	push   %ecx
58efb7:	ff 74 24 34          	push   0x34(%esp)
58efbb:	ff 74 24 34          	push   0x34(%esp)
58efbf:	ff 74 24 34          	push   0x34(%esp)
58efc3:	ff 74 24 34          	push   0x34(%esp)
58efc7:	53                   	push   %ebx
58efc8:	55                   	push   %ebp
58efc9:	57                   	push   %edi
58efca:	ff d0                	call   *%eax
58efcc:	83 c4 24             	add    $0x24,%esp
58efcf:	85 c0                	test   %eax,%eax
58efd1:	0f 8f 79 ff ff ff    	jg     0x58ef50
58efd7:	68 a2 00 00 00       	push   $0xa2
58efdc:	68 28 6f 66 00       	push   $0x666f28
58efe1:	6a 6e                	push   $0x6e
58efe3:	68 2b 02 00 00       	push   $0x22b
58efe8:	ff 74 24 28          	push   0x28(%esp)
58efec:	57                   	push   %edi
58efed:	e8 1e 01 00 00       	call   0x58f110
58eff2:	83 c4 18             	add    $0x18,%esp
58eff5:	33 c0                	xor    %eax,%eax
58eff7:	5f                   	pop    %edi
58eff8:	5e                   	pop    %esi
58eff9:	5d                   	pop    %ebp
58effa:	5b                   	pop    %ebx
58effb:	c3                   	ret
58effc:	cc                   	int3
58effd:	cc                   	int3
58effe:	cc                   	int3
58efff:	cc                   	int3
58f000:	8b 44 24 04          	mov    0x4(%esp),%eax
58f004:	8b 40 40             	mov    0x40(%eax),%eax
58f007:	c3                   	ret
58f008:	cc                   	int3
58f009:	cc                   	int3
58f00a:	cc                   	int3
58f00b:	cc                   	int3
58f00c:	cc                   	int3
58f00d:	cc                   	int3
58f00e:	cc                   	int3
58f00f:	cc                   	int3
58f010:	8b 44 24 04          	mov    0x4(%esp),%eax
58f014:	83 78 40 00          	cmpl   $0x0,0x40(%eax)
58f018:	75 0c                	jne    0x58f026
58f01a:	83 78 2c 00          	cmpl   $0x0,0x2c(%eax)
58f01e:	75 06                	jne    0x58f026
58f020:	b8 01 00 00 00       	mov    $0x1,%eax
58f025:	c3                   	ret
58f026:	33 c0                	xor    %eax,%eax
58f028:	c3                   	ret
58f029:	cc                   	int3
58f02a:	cc                   	int3
58f02b:	cc                   	int3
58f02c:	cc                   	int3
58f02d:	cc                   	int3
58f02e:	cc                   	int3
58f02f:	cc                   	int3
58f030:	8b 44 24 04          	mov    0x4(%esp),%eax
58f034:	8b 40 48             	mov    0x48(%eax),%eax
58f037:	c3                   	ret
58f038:	cc                   	int3
58f039:	cc                   	int3
58f03a:	cc                   	int3
58f03b:	cc                   	int3
58f03c:	cc                   	int3
58f03d:	cc                   	int3
58f03e:	cc                   	int3
58f03f:	cc                   	int3
58f040:	8b 44 24 04          	mov    0x4(%esp),%eax
58f044:	83 78 48 00          	cmpl   $0x0,0x48(%eax)
58f048:	75 0c                	jne    0x58f056
58f04a:	83 78 40 01          	cmpl   $0x1,0x40(%eax)
58f04e:	75 06                	jne    0x58f056
58f050:	b8 01 00 00 00       	mov    $0x1,%eax
58f055:	c3                   	ret
58f056:	33 c0                	xor    %eax,%eax
58f058:	c3                   	ret
58f059:	cc                   	int3
58f05a:	cc                   	int3
58f05b:	cc                   	int3
58f05c:	cc                   	int3
58f05d:	cc                   	int3
58f05e:	cc                   	int3
58f05f:	cc                   	int3
58f060:	6a 01                	push   $0x1
58f062:	ff 74 24 08          	push   0x8(%esp)
58f066:	e8 f5 04 00 00       	call   0x58f560
58f06b:	83 c4 08             	add    $0x8,%esp
58f06e:	c3                   	ret
58f06f:	cc                   	int3
58f070:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58f074:	83 79 2c 00          	cmpl   $0x0,0x2c(%ecx)
58f078:	74 32                	je     0x58f0ac
58f07a:	8b 41 7c             	mov    0x7c(%ecx),%eax
58f07d:	83 b8 fc 00 00 00 00 	cmpl   $0x0,0xfc(%eax)
58f084:	74 26                	je     0x58f0ac
58f086:	83 b8 f4 00 00 00 00 	cmpl   $0x0,0xf4(%eax)
58f08d:	74 1d                	je     0x58f0ac
58f08f:	83 79 1c 00          	cmpl   $0x0,0x1c(%ecx)
58f093:	8b 41 40             	mov    0x40(%ecx),%eax
58f096:	74 09                	je     0x58f0a1
58f098:	85 c0                	test   %eax,%eax
58f09a:	74 0a                	je     0x58f0a6
58f09c:	83 f8 14             	cmp    $0x14,%eax
58f09f:	eb 03                	jmp    0x58f0a4
58f0a1:	83 f8 0c             	cmp    $0xc,%eax
58f0a4:	75 06                	jne    0x58f0ac
58f0a6:	b8 01 00 00 00       	mov    $0x1,%eax
58f0ab:	c3                   	ret
58f0ac:	33 c0                	xor    %eax,%eax
58f0ae:	c3                   	ret
58f0af:	cc                   	int3
58f0b0:	8b 44 24 04          	mov    0x4(%esp),%eax
58f0b4:	c7 40 2c 00 00 00 00 	movl   $0x0,0x2c(%eax)
58f0bb:	c7 40 40 00 00 00 00 	movl   $0x0,0x40(%eax)
58f0c2:	c7 40 48 01 00 00 00 	movl   $0x1,0x48(%eax)
58f0c9:	c7 40 58 00 00 00 00 	movl   $0x0,0x58(%eax)
58f0d0:	c3                   	ret
58f0d1:	cc                   	int3
58f0d2:	cc                   	int3
58f0d3:	cc                   	int3
58f0d4:	cc                   	int3
58f0d5:	cc                   	int3
58f0d6:	cc                   	int3
58f0d7:	cc                   	int3
58f0d8:	cc                   	int3
58f0d9:	cc                   	int3
58f0da:	cc                   	int3
58f0db:	cc                   	int3
58f0dc:	cc                   	int3
58f0dd:	cc                   	int3
58f0de:	cc                   	int3
58f0df:	cc                   	int3
58f0e0:	6a 00                	push   $0x0
58f0e2:	ff 74 24 08          	push   0x8(%esp)
58f0e6:	e8 75 04 00 00       	call   0x58f560
58f0eb:	83 c4 08             	add    $0x8,%esp
58f0ee:	c3                   	ret
58f0ef:	cc                   	int3
58f0f0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58f0f4:	8b 41 7c             	mov    0x7c(%ecx),%eax
58f0f7:	83 b8 34 03 00 00 00 	cmpl   $0x0,0x334(%eax)
58f0fe:	74 0c                	je     0x58f10c
58f100:	83 79 40 24          	cmpl   $0x24,0x40(%ecx)
58f104:	74 06                	je     0x58f10c
58f106:	b8 01 00 00 00       	mov    $0x1,%eax
58f10b:	c3                   	ret
58f10c:	33 c0                	xor    %eax,%eax
58f10e:	c3                   	ret
58f10f:	cc                   	int3
58f110:	ff 74 24 18          	push   0x18(%esp)
58f114:	ff 74 24 18          	push   0x18(%esp)
58f118:	ff 74 24 18          	push   0x18(%esp)
58f11c:	ff 74 24 18          	push   0x18(%esp)
58f120:	6a 14                	push   $0x14
58f122:	e8 59 9e f4 ff       	call   0x4d8f80
58f127:	8b 44 24 18          	mov    0x18(%esp),%eax
58f12b:	83 c4 14             	add    $0x14,%esp
58f12e:	83 78 48 00          	cmpl   $0x0,0x48(%eax)
58f132:	74 06                	je     0x58f13a
58f134:	83 78 2c 01          	cmpl   $0x1,0x2c(%eax)
58f138:	74 29                	je     0x58f163
58f13a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58f13e:	c7 40 48 01 00 00 00 	movl   $0x1,0x48(%eax)
58f145:	c7 40 2c 01 00 00 00 	movl   $0x1,0x2c(%eax)
58f14c:	83 f9 ff             	cmp    $0xffffffff,%ecx
58f14f:	74 12                	je     0x58f163
58f151:	83 78 60 01          	cmpl   $0x1,0x60(%eax)
58f155:	74 0c                	je     0x58f163
58f157:	51                   	push   %ecx
58f158:	6a 02                	push   $0x2
58f15a:	50                   	push   %eax
58f15b:	e8 50 54 01 00       	call   0x5a45b0
58f160:	83 c4 0c             	add    $0xc,%esp
58f163:	c3                   	ret
58f164:	cc                   	int3
58f165:	cc                   	int3
58f166:	cc                   	int3
58f167:	cc                   	int3
58f168:	cc                   	int3
58f169:	cc                   	int3
58f16a:	cc                   	int3
58f16b:	cc                   	int3
58f16c:	cc                   	int3
58f16d:	cc                   	int3
58f16e:	cc                   	int3
58f16f:	cc                   	int3
58f170:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58f174:	33 c0                	xor    %eax,%eax
58f176:	83 79 2c 01          	cmpl   $0x1,0x2c(%ecx)
58f17a:	0f 94 c0             	sete   %al
58f17d:	c3                   	ret
58f17e:	cc                   	int3
58f17f:	cc                   	int3
58f180:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58f184:	33 c0                	xor    %eax,%eax
58f186:	39 44 24 08          	cmp    %eax,0x8(%esp)
58f18a:	0f 95 c0             	setne  %al
58f18d:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
58f194:	01 41 50             	add    %eax,0x50(%ecx)
58f197:	c3                   	ret
58f198:	cc                   	int3
58f199:	cc                   	int3
58f19a:	cc                   	int3
58f19b:	cc                   	int3
58f19c:	cc                   	int3
58f19d:	cc                   	int3
58f19e:	cc                   	int3
58f19f:	cc                   	int3
58f1a0:	8b 44 24 04          	mov    0x4(%esp),%eax
58f1a4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58f1a8:	89 48 48             	mov    %ecx,0x48(%eax)
58f1ab:	c3                   	ret
58f1ac:	cc                   	int3
58f1ad:	cc                   	int3
58f1ae:	cc                   	int3
58f1af:	cc                   	int3
58f1b0:	8b 44 24 04          	mov    0x4(%esp),%eax
58f1b4:	c7 40 48 01 00 00 00 	movl   $0x1,0x48(%eax)
58f1bb:	c7 40 44 13 00 00 00 	movl   $0x13,0x44(%eax)
58f1c2:	c3                   	ret
58f1c3:	cc                   	int3
58f1c4:	cc                   	int3
58f1c5:	cc                   	int3
58f1c6:	cc                   	int3
58f1c7:	cc                   	int3
58f1c8:	cc                   	int3
58f1c9:	cc                   	int3
58f1ca:	cc                   	int3
58f1cb:	cc                   	int3
58f1cc:	cc                   	int3
58f1cd:	cc                   	int3
58f1ce:	cc                   	int3
58f1cf:	cc                   	int3
58f1d0:	8b 44 24 04          	mov    0x4(%esp),%eax
58f1d4:	83 b8 ac 05 00 00 01 	cmpl   $0x1,0x5ac(%eax)
58f1db:	75 1b                	jne    0x58f1f8
58f1dd:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
58f1e1:	74 15                	je     0x58f1f8
58f1e3:	83 78 40 2e          	cmpl   $0x2e,0x40(%eax)
58f1e7:	75 0f                	jne    0x58f1f8
58f1e9:	83 b8 4c 04 00 00 02 	cmpl   $0x2,0x44c(%eax)
58f1f0:	74 06                	je     0x58f1f8
58f1f2:	b8 01 00 00 00       	mov    $0x1,%eax
58f1f7:	c3                   	ret
58f1f8:	33 c0                	xor    %eax,%eax
58f1fa:	c3                   	ret
58f1fb:	cc                   	int3
58f1fc:	cc                   	int3
58f1fd:	cc                   	int3
58f1fe:	cc                   	int3
58f1ff:	cc                   	int3
58f200:	b8 1c 00 00 00       	mov    $0x1c,%eax
58f205:	e8 a6 25 04 00       	call   0x5d17b0
58f20a:	53                   	push   %ebx
58f20b:	55                   	push   %ebp
58f20c:	56                   	push   %esi
58f20d:	8b 74 24 2c          	mov    0x2c(%esp),%esi
58f211:	57                   	push   %edi
58f212:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
58f219:	00
58f21a:	8b ae b4 04 00 00    	mov    0x4b4(%esi),%ebp
58f220:	85 ed                	test   %ebp,%ebp
58f222:	75 0c                	jne    0x58f230
58f224:	8b 86 d0 04 00 00    	mov    0x4d0(%esi),%eax
58f22a:	8b a8 a0 00 00 00    	mov    0xa0(%eax),%ebp
58f230:	8b 46 1c             	mov    0x1c(%esi),%eax
58f233:	ba a0 8b 5a 00       	mov    $0x5a8ba0,%edx
58f238:	85 c0                	test   %eax,%eax
58f23a:	b9 c0 bf 59 00       	mov    $0x59bfc0,%ecx
58f23f:	bf e0 8a 5a 00       	mov    $0x5a8ae0,%edi
58f244:	bb 40 c8 59 00       	mov    $0x59c840,%ebx
58f249:	0f 44 ca             	cmove  %edx,%ecx
58f24c:	ba 30 bf 59 00       	mov    $0x59bf30,%edx
58f251:	0f 44 d7             	cmove  %edi,%edx
58f254:	89 4c 24 30          	mov    %ecx,0x30(%esp)
58f258:	89 54 24 18          	mov    %edx,0x18(%esp)
58f25c:	bf 50 c5 59 00       	mov    $0x59c550,%edi
58f261:	ba a0 8f 5a 00       	mov    $0x5a8fa0,%edx
58f266:	0f 44 fa             	cmove  %edx,%edi
58f269:	ba 40 95 5a 00       	mov    $0x5a9540,%edx
58f26e:	0f 44 da             	cmove  %edx,%ebx
58f271:	89 7c 24 20          	mov    %edi,0x20(%esp)
58f275:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
58f279:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
58f27d:	74 11                	je     0x58f290
58f27f:	c7 86 00 05 00 00 01 	movl   $0x1,0x500(%esi)
58f286:	00 00 00
58f289:	c7 46 4c 00 00 00 00 	movl   $0x0,0x4c(%esi)
58f290:	8b 46 38             	mov    0x38(%esi),%eax
58f293:	83 e8 00             	sub    $0x0,%eax
58f296:	74 2e                	je     0x58f2c6
58f298:	83 e8 01             	sub    $0x1,%eax
58f29b:	0f 84 f5 00 00 00    	je     0x58f396
58f2a1:	83 e8 01             	sub    $0x1,%eax
58f2a4:	0f 85 e0 01 00 00    	jne    0x58f48a
58f2aa:	ff 76 3c             	push   0x3c(%esi)