58e961:	8b 18                	mov    (%eax),%ebx
58e963:	8b c5                	mov    %ebp,%eax
58e965:	23 df                	and    %edi,%ebx
58e967:	33 ff                	xor    %edi,%edi
58e969:	2b c2                	sub    %edx,%eax
58e96b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
58e96f:	90                   	nop
58e970:	85 db                	test   %ebx,%ebx
58e972:	75 0f                	jne    0x58e983
58e974:	8d 42 01             	lea    0x1(%edx),%eax
58e977:	03 c7                	add    %edi,%eax
58e979:	3b 44 24 10          	cmp    0x10(%esp),%eax
58e97d:	0f 83 82 00 00 00    	jae    0x58ea05
58e983:	33 c0                	xor    %eax,%eax
58e985:	f6 c3 01             	test   $0x1,%bl
58e988:	74 3d                	je     0x58e9c7
58e98a:	8b c3                	mov    %ebx,%eax
58e98c:	85 de                	test   %ebx,%esi
58e98e:	74 18                	je     0x58e9a8
58e990:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
58e993:	2b c1                	sub    %ecx,%eax
58e995:	8d 4a 01             	lea    0x1(%edx),%ecx
58e998:	03 cf                	add    %edi,%ecx
58e99a:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
58e99e:	72 08                	jb     0x58e9a8
58e9a0:	8b 44 24 14          	mov    0x14(%esp),%eax
58e9a4:	d1 f8                	sar    $1,%eax
58e9a6:	23 c3                	and    %ebx,%eax
58e9a8:	8b ce                	mov    %esi,%ecx
58e9aa:	f7 d9                	neg    %ecx
58e9ac:	3b c1                	cmp    %ecx,%eax
58e9ae:	7e 79                	jle    0x58ea29
58e9b0:	3b c6                	cmp    %esi,%eax
58e9b2:	7d 75                	jge    0x58ea29
58e9b4:	a8 01                	test   $0x1,%al
58e9b6:	74 71                	je     0x58ea29
58e9b8:	2b d8                	sub    %eax,%ebx
58e9ba:	74 0b                	je     0x58e9c7
58e9bc:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
58e9bf:	3b d9                	cmp    %ecx,%ebx
58e9c1:	74 04                	je     0x58e9c7
58e9c3:	3b de                	cmp    %esi,%ebx
58e9c5:	75 5b                	jne    0x58ea22
58e9c7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
58e9cb:	0f be c0             	movsbl %al,%eax
58e9ce:	0f be c9             	movsbl %cl,%ecx
58e9d1:	0f af c8             	imul   %eax,%ecx
58e9d4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58e9d8:	03 c7                	add    %edi,%eax
58e9da:	47                   	inc    %edi
58e9db:	88 0c 10             	mov    %cl,(%eax,%edx,1)
58e9de:	8d 04 17             	lea    (%edi,%edx,1),%eax
58e9e1:	50                   	push   %eax
58e9e2:	ff 74 24 2c          	push   0x2c(%esp)
58e9e6:	e8 55 48 f2 ff       	call   0x4b3240
58e9eb:	0f af c6             	imul   %esi,%eax
58e9ee:	83 c4 08             	add    $0x8,%esp
58e9f1:	d1 fb                	sar    $1,%ebx
58e9f3:	03 d8                	add    %eax,%ebx
58e9f5:	8d 04 36             	lea    (%esi,%esi,1),%eax
58e9f8:	3b d8                	cmp    %eax,%ebx
58e9fa:	7f 34                	jg     0x58ea30
58e9fc:	8b 54 24 2c          	mov    0x2c(%esp),%edx
58ea00:	e9 6b ff ff ff       	jmp    0x58e970
58ea05:	3b 7c 24 20          	cmp    0x20(%esp),%edi
58ea09:	76 07                	jbe    0x58ea12
58ea0b:	68 29 01 00 00       	push   $0x129
58ea10:	eb 31                	jmp    0x58ea43
58ea12:	8b 44 24 30          	mov    0x30(%esp),%eax
58ea16:	89 38                	mov    %edi,(%eax)
58ea18:	8b c5                	mov    %ebp,%eax
58ea1a:	5f                   	pop    %edi
58ea1b:	5e                   	pop    %esi
58ea1c:	5d                   	pop    %ebp
58ea1d:	5b                   	pop    %ebx
58ea1e:	83 c4 14             	add    $0x14,%esp
58ea21:	c3                   	ret
58ea22:	68 18 01 00 00       	push   $0x118
58ea27:	eb 1a                	jmp    0x58ea43
58ea29:	68 0c 01 00 00       	push   $0x10c
58ea2e:	eb 13                	jmp    0x58ea43
58ea30:	68 23 01 00 00       	push   $0x123
58ea35:	eb 0c                	jmp    0x58ea43
58ea37:	68 df 00 00 00       	push   $0xdf
58ea3c:	eb 05                	jmp    0x58ea43
58ea3e:	68 d3 00 00 00       	push   $0xd3
58ea43:	68 58 70 6c 00       	push   $0x6c7058
58ea48:	6a 44                	push   $0x44
58ea4a:	68 8f 00 00 00       	push   $0x8f
58ea4f:	6a 10                	push   $0x10
58ea51:	e8 4a 2a f1 ff       	call   0x4a14a0
58ea56:	83 c4 14             	add    $0x14,%esp
58ea59:	55                   	push   %ebp
58ea5a:	e8 d1 16 f1 ff       	call   0x4a0130
58ea5f:	83 c4 04             	add    $0x4,%esp
58ea62:	33 ed                	xor    %ebp,%ebp
58ea64:	8b c5                	mov    %ebp,%eax
58ea66:	5f                   	pop    %edi
58ea67:	5e                   	pop    %esi
58ea68:	5d                   	pop    %ebp
58ea69:	5b                   	pop    %ebx
58ea6a:	83 c4 14             	add    $0x14,%esp
58ea6d:	c3                   	ret
58ea6e:	cc                   	int3
58ea6f:	cc                   	int3
58ea70:	57                   	push   %edi
58ea71:	8b 7c 24 08          	mov    0x8(%esp),%edi
58ea75:	85 ff                	test   %edi,%edi
58ea77:	74 64                	je     0x58eadd
58ea79:	68 a3 00 00 00       	push   $0xa3
58ea7e:	68 58 70 6c 00       	push   $0x6c7058
58ea83:	6a 24                	push   $0x24
58ea85:	8d 47 18             	lea    0x18(%edi),%eax
58ea88:	6a ff                	push   $0xffffffff
58ea8a:	50                   	push   %eax
58ea8b:	e8 90 19 f1 ff       	call   0x4a0420
58ea90:	83 c4 14             	add    $0x14,%esp
58ea93:	85 c0                	test   %eax,%eax
58ea95:	7f 46                	jg     0x58eadd
58ea97:	56                   	push   %esi
58ea98:	8b 77 10             	mov    0x10(%edi),%esi
58ea9b:	85 f6                	test   %esi,%esi
58ea9d:	74 2c                	je     0x58eacb
58ea9f:	8b 06                	mov    (%esi),%eax
58eaa1:	85 c0                	test   %eax,%eax
58eaa3:	74 1b                	je     0x58eac0
58eaa5:	50                   	push   %eax
58eaa6:	e8 55 d3 fe ff       	call   0x57be00
58eaab:	6a 04                	push   $0x4
58eaad:	56                   	push   %esi
58eaae:	e8 9d 18 f1 ff       	call   0x4a0350
58eab3:	8b 46 04             	mov    0x4(%esi),%eax
58eab6:	83 c6 04             	add    $0x4,%esi
58eab9:	83 c4 0c             	add    $0xc,%esp
58eabc:	85 c0                	test   %eax,%eax
58eabe:	75 e5                	jne    0x58eaa5
58eac0:	ff 77 10             	push   0x10(%edi)
58eac3:	e8 68 16 f1 ff       	call   0x4a0130
58eac8:	83 c4 04             	add    $0x4,%esp
58eacb:	6a 1c                	push   $0x1c
58eacd:	57                   	push   %edi
58eace:	e8 7d 18 f1 ff       	call   0x4a0350
58ead3:	57                   	push   %edi
58ead4:	e8 57 16 f1 ff       	call   0x4a0130
58ead9:	83 c4 0c             	add    $0xc,%esp
58eadc:	5e                   	pop    %esi
58eadd:	5f                   	pop    %edi
58eade:	c3                   	ret
58eadf:	cc                   	int3
58eae0:	56                   	push   %esi
58eae1:	8b 74 24 08          	mov    0x8(%esp),%esi
58eae5:	68 80 00 00 00       	push   $0x80
58eaea:	68 58 70 6c 00       	push   $0x6c7058
58eaef:	6a 24                	push   $0x24
58eaf1:	8d 4e 18             	lea    0x18(%esi),%ecx
58eaf4:	6a 01                	push   $0x1
58eaf6:	51                   	push   %ecx
58eaf7:	e8 24 19 f1 ff       	call   0x4a0420
58eafc:	83 c4 14             	add    $0x14,%esp
58eaff:	8b c6                	mov    %esi,%eax
58eb01:	5e                   	pop    %esi
58eb02:	c3                   	ret
58eb03:	cc                   	int3
58eb04:	cc                   	int3
58eb05:	cc                   	int3
58eb06:	cc                   	int3
58eb07:	cc                   	int3
58eb08:	cc                   	int3
58eb09:	cc                   	int3
58eb0a:	cc                   	int3
58eb0b:	cc                   	int3
58eb0c:	cc                   	int3
58eb0d:	cc                   	int3
58eb0e:	cc                   	int3
58eb0f:	cc                   	int3
58eb10:	57                   	push   %edi
58eb11:	8b 7c 24 08          	mov    0x8(%esp),%edi
58eb15:	85 ff                	test   %edi,%edi
58eb17:	74 54                	je     0x58eb6d
58eb19:	68 8d 00 00 00       	push   $0x8d
58eb1e:	68 58 70 6c 00       	push   $0x6c7058
58eb23:	6a 24                	push   $0x24
58eb25:	8d 47 18             	lea    0x18(%edi),%eax
58eb28:	6a ff                	push   $0xffffffff
58eb2a:	50                   	push   %eax
58eb2b:	e8 f0 18 f1 ff       	call   0x4a0420
58eb30:	83 c4 14             	add    $0x14,%esp
58eb33:	85 c0                	test   %eax,%eax
58eb35:	7f 36                	jg     0x58eb6d
58eb37:	56                   	push   %esi
58eb38:	8b 77 10             	mov    0x10(%edi),%esi
58eb3b:	85 f6                	test   %esi,%esi
58eb3d:	74 24                	je     0x58eb63
58eb3f:	8b 06                	mov    (%esi),%eax
58eb41:	85 c0                	test   %eax,%eax
58eb43:	74 13                	je     0x58eb58
58eb45:	50                   	push   %eax
58eb46:	e8 95 d4 fe ff       	call   0x57bfe0
58eb4b:	8b 46 04             	mov    0x4(%esi),%eax
58eb4e:	8d 76 04             	lea    0x4(%esi),%esi
58eb51:	83 c4 04             	add    $0x4,%esp
58eb54:	85 c0                	test   %eax,%eax
58eb56:	75 ed                	jne    0x58eb45
58eb58:	ff 77 10             	push   0x10(%edi)
58eb5b:	e8 d0 15 f1 ff       	call   0x4a0130
58eb60:	83 c4 04             	add    $0x4,%esp
58eb63:	57                   	push   %edi
58eb64:	e8 c7 15 f1 ff       	call   0x4a0130
58eb69:	83 c4 04             	add    $0x4,%esp
58eb6c:	5e                   	pop    %esi
58eb6d:	5f                   	pop    %edi
58eb6e:	c3                   	ret
58eb6f:	cc                   	int3
58eb70:	56                   	push   %esi
58eb71:	8b 74 24 08          	mov    0x8(%esp),%esi
58eb75:	85 f6                	test   %esi,%esi
58eb77:	74 2d                	je     0x58eba6
58eb79:	6a 6b                	push   $0x6b
58eb7b:	68 58 70 6c 00       	push   $0x6c7058
58eb80:	6a 1c                	push   $0x1c
58eb82:	e8 29 16 f1 ff       	call   0x4a01b0
58eb87:	83 c4 0c             	add    $0xc,%esp
58eb8a:	85 c0                	test   %eax,%eax
58eb8c:	75 1c                	jne    0x58ebaa
58eb8e:	6a 6d                	push   $0x6d
58eb90:	68 58 70 6c 00       	push   $0x6c7058
58eb95:	6a 41                	push   $0x41
58eb97:	68 c4 00 00 00       	push   $0xc4
58eb9c:	6a 10                	push   $0x10
58eb9e:	e8 fd 28 f1 ff       	call   0x4a14a0
58eba3:	83 c4 14             	add    $0x14,%esp
58eba6:	33 c0                	xor    %eax,%eax
58eba8:	5e                   	pop    %esi
58eba9:	c3                   	ret
58ebaa:	89 30                	mov    %esi,(%eax)
58ebac:	c7 40 04 08 00 00 00 	movl   $0x8,0x4(%eax)
58ebb3:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
58ebba:	c7 40 0c 04 00 00 00 	movl   $0x4,0xc(%eax)
58ebc1:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
58ebc8:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)
58ebcf:	c7 40 18 01 00 00 00 	movl   $0x1,0x18(%eax)
58ebd6:	5e                   	pop    %esi
58ebd7:	c3                   	ret
58ebd8:	cc                   	int3
58ebd9:	cc                   	int3
58ebda:	cc                   	int3
58ebdb:	cc                   	int3
58ebdc:	cc                   	int3
58ebdd:	cc                   	int3
58ebde:	cc                   	int3
58ebdf:	cc                   	int3
58ebe0:	8b 44 24 04          	mov    0x4(%esp),%eax
58ebe4:	68 70 ea 58 00       	push   $0x58ea70
58ebe9:	68 10 eb 58 00       	push   $0x58eb10
58ebee:	68 e0 ea 58 00       	push   $0x58eae0
58ebf3:	ff 70 44             	push   0x44(%eax)
58ebf6:	e8 45 c6 fe ff       	call   0x57b240
58ebfb:	83 c4 10             	add    $0x10,%esp
58ebfe:	f7 d8                	neg    %eax
58ec00:	1b c0                	sbb    %eax,%eax
58ec02:	f7 d8                	neg    %eax
58ec04:	c3                   	ret
58ec05:	cc                   	int3
58ec06:	cc                   	int3
58ec07:	cc                   	int3
58ec08:	cc                   	int3
58ec09:	cc                   	int3
58ec0a:	cc                   	int3
58ec0b:	cc                   	int3
58ec0c:	cc                   	int3
58ec0d:	cc                   	int3
58ec0e:	cc                   	int3
58ec0f:	cc                   	int3
58ec10:	b8 4c 00 00 00       	mov    $0x4c,%eax
58ec15:	e8 d6 28 05 00       	call   0x5e14f0
58ec1a:	33 c0                	xor    %eax,%eax
58ec1c:	c7 44 24 40 00 00 00 	movl   $0x0,0x40(%esp)
58ec23:	00
58ec24:	53                   	push   %ebx
58ec25:	8b 5c 24 54          	mov    0x54(%esp),%ebx
58ec29:	89 44 24 08          	mov    %eax,0x8(%esp)
58ec2d:	89 44 24 48          	mov    %eax,0x48(%esp)
58ec31:	8b 44 24 58          	mov    0x58(%esp),%eax
58ec35:	8b 13                	mov    (%ebx),%edx
58ec37:	55                   	push   %ebp
58ec38:	56                   	push   %esi
58ec39:	33 f6                	xor    %esi,%esi
58ec3b:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
58ec42:	00
58ec43:	33 ed                	xor    %ebp,%ebp
58ec45:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
58ec4c:	00
58ec4d:	89 74 24 2c          	mov    %esi,0x2c(%esp)
58ec51:	89 74 24 44          	mov    %esi,0x44(%esp)
58ec55:	89 74 24 38          	mov    %esi,0x38(%esp)
58ec59:	89 74 24 28          	mov    %esi,0x28(%esp)
58ec5d:	89 74 24 1c          	mov    %esi,0x1c(%esp)
58ec61:	89 74 24 20          	mov    %esi,0x20(%esp)
58ec65:	89 74 24 18          	mov    %esi,0x18(%esp)
58ec69:	89 6c 24 40          	mov    %ebp,0x40(%esp)
58ec6d:	3b 10                	cmp    (%eax),%edx
58ec6f:	74 24                	je     0x58ec95
58ec71:	68 6c 01 00 00       	push   $0x16c
58ec76:	68 58 70 6c 00       	push   $0x6c7058
58ec7b:	6a 65                	push   $0x65
58ec7d:	68 bb 00 00 00       	push   $0xbb
58ec82:	6a 10                	push   $0x10
58ec84:	e8 17 28 f1 ff       	call   0x4a14a0
58ec89:	83 c4 14             	add    $0x14,%esp
58ec8c:	33 c0                	xor    %eax,%eax
58ec8e:	5e                   	pop    %esi
58ec8f:	5d                   	pop    %ebp
58ec90:	5b                   	pop    %ebx
58ec91:	83 c4 4c             	add    $0x4c,%esp
58ec94:	c3                   	ret
58ec95:	57                   	push   %edi
58ec96:	8b 7c 24 68          	mov    0x68(%esp),%edi
58ec9a:	85 ff                	test   %edi,%edi
58ec9c:	75 18                	jne    0x58ecb6
58ec9e:	39 74 24 6c          	cmp    %esi,0x6c(%esp)
58eca2:	75 12                	jne    0x58ecb6
58eca4:	50                   	push   %eax
58eca5:	53                   	push   %ebx
58eca6:	e8 45 d8 fe ff       	call   0x57c4f0
58ecab:	83 c4 08             	add    $0x8,%esp
58ecae:	5f                   	pop    %edi
58ecaf:	5e                   	pop    %esi
58ecb0:	5d                   	pop    %ebp
58ecb1:	5b                   	pop    %ebx
58ecb2:	83 c4 4c             	add    $0x4c,%esp
58ecb5:	c3                   	ret
58ecb6:	33 c9                	xor    %ecx,%ecx
58ecb8:	39 4c 24 6c          	cmp    %ecx,0x6c(%esp)
58ecbc:	76 14                	jbe    0x58ecd2
58ecbe:	66 90                	xchg   %ax,%ax
58ecc0:	8b 44 24 70          	mov    0x70(%esp),%eax
58ecc4:	8b 04 88             	mov    (%eax,%ecx,4),%eax
58ecc7:	3b 10                	cmp    (%eax),%edx
58ecc9:	75 5f                	jne    0x58ed2a
58eccb:	41                   	inc    %ecx
58eccc:	3b 4c 24 6c          	cmp    0x6c(%esp),%ecx
58ecd0:	72 ee                	jb     0x58ecc0
58ecd2:	39 74 24 78          	cmp    %esi,0x78(%esp)
58ecd6:	75 15                	jne    0x58eced
58ecd8:	e8 43 91 f4 ff       	call   0x4d7e20
58ecdd:	89 44 24 50          	mov    %eax,0x50(%esp)
58ece1:	89 44 24 78          	mov    %eax,0x78(%esp)
58ece5:	85 c0                	test   %eax,%eax
58ece7:	0f 84 90 05 00 00    	je     0x58f27d
58eced:	85 ff                	test   %edi,%edi