58a818:	e8 54 be 04 00       	call   0x5d6671
58a81d:	50                   	push   %eax
58a81e:	ff b6 e0 05 00 00    	push   0x5e0(%esi)
58a824:	e8 87 56 00 00       	call   0x58feb0
58a829:	83 c4 0c             	add    $0xc,%esp
58a82c:	5d                   	pop    %ebp
58a82d:	5e                   	pop    %esi
58a82e:	83 c4 08             	add    $0x8,%esp
58a831:	c3                   	ret
58a832:	cc                   	int3
58a833:	cc                   	int3
58a834:	cc                   	int3
58a835:	cc                   	int3
58a836:	cc                   	int3
58a837:	cc                   	int3
58a838:	cc                   	int3
58a839:	cc                   	int3
58a83a:	cc                   	int3
58a83b:	cc                   	int3
58a83c:	cc                   	int3
58a83d:	cc                   	int3
58a83e:	cc                   	int3
58a83f:	cc                   	int3
58a840:	55                   	push   %ebp
58a841:	56                   	push   %esi
58a842:	57                   	push   %edi
58a843:	8b 7c 24 10          	mov    0x10(%esp),%edi
58a847:	33 ed                	xor    %ebp,%ebp
58a849:	8b 87 74 04 00 00    	mov    0x474(%edi),%eax
58a84f:	85 c0                	test   %eax,%eax
58a851:	74 08                	je     0x58a85b
58a853:	8b 80 9c 01 00 00    	mov    0x19c(%eax),%eax
58a859:	eb 02                	jmp    0x58a85d
58a85b:	33 c0                	xor    %eax,%eax
58a85d:	8d b7 94 00 00 00    	lea    0x94(%edi),%esi
58a863:	89 44 24 10          	mov    %eax,0x10(%esp)
58a867:	39 af d0 05 00 00    	cmp    %ebp,0x5d0(%edi)
58a86d:	0f 84 a5 01 00 00    	je     0x58aa18
58a873:	85 c0                	test   %eax,%eax
58a875:	0f 84 9d 01 00 00    	je     0x58aa18
58a87b:	39 af d8 04 00 00    	cmp    %ebp,0x4d8(%edi)
58a881:	0f 85 91 01 00 00    	jne    0x58aa18
58a887:	8b 87 d4 04 00 00    	mov    0x4d4(%edi),%eax
58a88d:	85 c0                	test   %eax,%eax
58a88f:	0f 84 83 01 00 00    	je     0x58aa18
58a895:	50                   	push   %eax
58a896:	e8 25 a8 f5 ff       	call   0x4e50c0
58a89b:	83 c4 04             	add    $0x4,%esp
58a89e:	83 f8 01             	cmp    $0x1,%eax
58a8a1:	0f 8e 71 01 00 00    	jle    0x58aa18
58a8a7:	85 f6                	test   %esi,%esi
58a8a9:	74 22                	je     0x58a8cd
58a8ab:	ff 76 04             	push   0x4(%esi)
58a8ae:	e8 0d a8 f5 ff       	call   0x4e50c0
58a8b3:	83 c4 04             	add    $0x4,%esp
58a8b6:	85 c0                	test   %eax,%eax
58a8b8:	7e 13                	jle    0x58a8cd
58a8ba:	8b 46 0c             	mov    0xc(%esi),%eax
58a8bd:	85 c0                	test   %eax,%eax
58a8bf:	74 0c                	je     0x58a8cd
58a8c1:	8a 00                	mov    (%eax),%al
58a8c3:	2c 02                	sub    $0x2,%al
58a8c5:	3c 01                	cmp    $0x1,%al
58a8c7:	0f 86 4b 01 00 00    	jbe    0x58aa18
58a8cd:	53                   	push   %ebx
58a8ce:	e8 fd c1 06 00       	call   0x5f6ad0
58a8d3:	8b d8                	mov    %eax,%ebx
58a8d5:	85 db                	test   %ebx,%ebx
58a8d7:	75 33                	jne    0x58a90c
58a8d9:	68 50 13 00 00       	push   $0x1350
58a8de:	68 3c 48 66 00       	push   $0x66483c
58a8e3:	6a 41                	push   $0x41
58a8e5:	68 90 01 00 00       	push   $0x190
58a8ea:	6a 50                	push   $0x50
58a8ec:	57                   	push   %edi
58a8ed:	e8 1e 48 00 00       	call   0x58f110
58a8f2:	53                   	push   %ebx
58a8f3:	e8 a8 c1 06 00       	call   0x5f6aa0
58a8f8:	83 c4 1c             	add    $0x1c,%esp
58a8fb:	c7 87 d8 04 00 00 47 	movl   $0x47,0x4d8(%edi)
58a902:	00 00 00
58a905:	8b c5                	mov    %ebp,%eax
58a907:	5b                   	pop    %ebx
58a908:	5f                   	pop    %edi
58a909:	5e                   	pop    %esi
58a90a:	5d                   	pop    %ebp
58a90b:	c3                   	ret
58a90c:	6a 01                	push   $0x1
58a90e:	ff b7 d4 04 00 00    	push   0x4d4(%edi)
58a914:	e8 67 a9 f5 ff       	call   0x4e5280
58a919:	ff 74 24 1c          	push   0x1c(%esp)
58a91d:	8b f0                	mov    %eax,%esi
58a91f:	53                   	push   %ebx
58a920:	e8 1b c2 06 00       	call   0x5f6b40
58a925:	56                   	push   %esi
58a926:	53                   	push   %ebx
58a927:	e8 44 c2 06 00       	call   0x5f6b70
58a92c:	8b 87 d0 04 00 00    	mov    0x4d0(%edi),%eax
58a932:	ff b0 08 01 00 00    	push   0x108(%eax)
58a938:	53                   	push   %ebx
58a939:	e8 62 c2 06 00       	call   0x5f6ba0
58a93e:	57                   	push   %edi
58a93f:	e8 cc 59 00 00       	call   0x590310
58a944:	50                   	push   %eax
58a945:	e8 b6 57 00 00       	call   0x590100
58a94a:	99                   	cltd
58a94b:	be e8 03 00 00       	mov    $0x3e8,%esi
58a950:	8b c8                	mov    %eax,%ecx
58a952:	8b c2                	mov    %edx,%eax
58a954:	f7 e6                	mul    %esi
58a956:	8b f0                	mov    %eax,%esi
58a958:	8b c1                	mov    %ecx,%eax
58a95a:	b9 e8 03 00 00       	mov    $0x3e8,%ecx
58a95f:	f7 e1                	mul    %ecx
58a961:	03 f2                	add    %edx,%esi
58a963:	56                   	push   %esi
58a964:	50                   	push   %eax
58a965:	53                   	push   %ebx
58a966:	e8 45 c2 06 00       	call   0x5f6bb0
58a96b:	57                   	push   %edi
58a96c:	e8 cf e8 ff ff       	call   0x589240
58a971:	8b f0                	mov    %eax,%esi
58a973:	53                   	push   %ebx
58a974:	56                   	push   %esi
58a975:	e8 f6 a0 ff ff       	call   0x584a70
58a97a:	83 c4 40             	add    $0x40,%esp
58a97d:	85 c0                	test   %eax,%eax
58a97f:	79 36                	jns    0x58a9b7
58a981:	68 6d 13 00 00       	push   $0x136d
58a986:	68 3c 48 66 00       	push   $0x66483c
58a98b:	68 d0 00 00 00       	push   $0xd0
58a990:	68 90 01 00 00       	push   $0x190
58a995:	6a 28                	push   $0x28
58a997:	57                   	push   %edi
58a998:	e8 73 47 00 00       	call   0x58f110
58a99d:	53                   	push   %ebx
58a99e:	e8 fd c0 06 00       	call   0x5f6aa0
58a9a3:	83 c4 1c             	add    $0x1c,%esp
58a9a6:	c7 87 d8 04 00 00 47 	movl   $0x47,0x4d8(%edi)
58a9ad:	00 00 00
58a9b0:	8b c5                	mov    %ebp,%eax
58a9b2:	5b                   	pop    %ebx
58a9b3:	5f                   	pop    %edi
58a9b4:	5e                   	pop    %esi
58a9b5:	5d                   	pop    %ebp
58a9b6:	c3                   	ret
58a9b7:	ff b7 d4 05 00 00    	push   0x5d4(%edi)
58a9bd:	8b 87 d0 05 00 00    	mov    0x5d0(%edi),%eax
58a9c3:	56                   	push   %esi
58a9c4:	53                   	push   %ebx
58a9c5:	ff d0                	call   *%eax
58a9c7:	8b e8                	mov    %eax,%ebp
58a9c9:	83 c4 0c             	add    $0xc,%esp
58a9cc:	8b f5                	mov    %ebp,%esi
58a9ce:	85 ed                	test   %ebp,%ebp
58a9d0:	79 13                	jns    0x58a9e5
58a9d2:	68 76 13 00 00       	push   $0x1376
58a9d7:	68 3c 48 66 00       	push   $0x66483c
58a9dc:	33 ed                	xor    %ebp,%ebp
58a9de:	68 ea 00 00 00       	push   $0xea
58a9e3:	eb ab                	jmp    0x58a990
58a9e5:	75 11                	jne    0x58a9f8
58a9e7:	68 76 13 00 00       	push   $0x1376
58a9ec:	68 3c 48 66 00       	push   $0x66483c
58a9f1:	68 ea 00 00 00       	push   $0xea
58a9f6:	eb 98                	jmp    0x58a990
58a9f8:	53                   	push   %ebx
58a9f9:	e8 a2 c0 06 00       	call   0x5f6aa0
58a9fe:	83 c4 04             	add    $0x4,%esp
58aa01:	8b ee                	mov    %esi,%ebp
58aa03:	85 f6                	test   %esi,%esi
58aa05:	7f 0a                	jg     0x58aa11
58aa07:	c7 87 d8 04 00 00 47 	movl   $0x47,0x4d8(%edi)
58aa0e:	00 00 00
58aa11:	5b                   	pop    %ebx
58aa12:	5f                   	pop    %edi
58aa13:	5e                   	pop    %esi
58aa14:	8b c5                	mov    %ebp,%eax
58aa16:	5d                   	pop    %ebp
58aa17:	c3                   	ret
58aa18:	5f                   	pop    %edi
58aa19:	5e                   	pop    %esi
58aa1a:	b8 01 00 00 00       	mov    $0x1,%eax
58aa1f:	5d                   	pop    %ebp
58aa20:	c3                   	ret
58aa21:	cc                   	int3
58aa22:	cc                   	int3
58aa23:	cc                   	int3
58aa24:	cc                   	int3
58aa25:	cc                   	int3
58aa26:	cc                   	int3
58aa27:	cc                   	int3
58aa28:	cc                   	int3
58aa29:	cc                   	int3
58aa2a:	cc                   	int3
58aa2b:	cc                   	int3
58aa2c:	cc                   	int3
58aa2d:	cc                   	int3
58aa2e:	cc                   	int3
58aa2f:	cc                   	int3
58aa30:	b8 10 04 00 00       	mov    $0x410,%eax
58aa35:	e8 76 6d 04 00       	call   0x5d17b0
58aa3a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
58aa3f:	33 c4                	xor    %esp,%eax
58aa41:	89 84 24 0c 04 00 00 	mov    %eax,0x40c(%esp)
58aa48:	53                   	push   %ebx
58aa49:	8b 9c 24 18 04 00 00 	mov    0x418(%esp),%ebx
58aa50:	8d 44 24 08          	lea    0x8(%esp),%eax
58aa54:	55                   	push   %ebp
58aa55:	8b ac 24 20 04 00 00 	mov    0x420(%esp),%ebp
58aa5c:	56                   	push   %esi
58aa5d:	57                   	push   %edi
58aa5e:	55                   	push   %ebp
58aa5f:	50                   	push   %eax
58aa60:	89 6c 24 20          	mov    %ebp,0x20(%esp)
58aa64:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
58aa6b:	00
58aa6c:	e8 af f4 fc ff       	call   0x559f20
58aa71:	8b f0                	mov    %eax,%esi
58aa73:	83 c4 08             	add    $0x8,%esp
58aa76:	85 f6                	test   %esi,%esi
58aa78:	0f 84 55 01 00 00    	je     0x58abd3
58aa7e:	66 90                	xchg   %ax,%ax
58aa80:	8b cd                	mov    %ebp,%ecx
58aa82:	8d 51 01             	lea    0x1(%ecx),%edx
58aa85:	8a 01                	mov    (%ecx),%al
58aa87:	41                   	inc    %ecx
58aa88:	84 c0                	test   %al,%al
58aa8a:	75 f9                	jne    0x58aa85
58aa8c:	2b ca                	sub    %edx,%ecx
58aa8e:	8b d6                	mov    %esi,%edx
58aa90:	8d 7a 01             	lea    0x1(%edx),%edi
58aa93:	8a 02                	mov    (%edx),%al
58aa95:	42                   	inc    %edx
58aa96:	84 c0                	test   %al,%al
58aa98:	75 f9                	jne    0x58aa93
58aa9a:	2b d7                	sub    %edi,%edx
58aa9c:	8d 41 02             	lea    0x2(%ecx),%eax
58aa9f:	03 c2                	add    %edx,%eax
58aaa1:	3d 00 04 00 00       	cmp    $0x400,%eax
58aaa6:	0f 87 ee 01 00 00    	ja     0x58ac9a
58aaac:	56                   	push   %esi
58aaad:	55                   	push   %ebp
58aaae:	68 fc 48 66 00       	push   $0x6648fc
58aab3:	8d 44 24 28          	lea    0x28(%esp),%eax
58aab7:	68 00 04 00 00       	push   $0x400
58aabc:	50                   	push   %eax
58aabd:	e8 6e 7b f5 ff       	call   0x4e2630
58aac2:	83 c4 14             	add    $0x14,%esp
58aac5:	85 c0                	test   %eax,%eax
58aac7:	0f 8e 5b 01 00 00    	jle    0x58ac28
58aacd:	3d 00 04 00 00       	cmp    $0x400,%eax
58aad2:	0f 8d 50 01 00 00    	jge    0x58ac28
58aad8:	68 10 b9 58 00       	push   $0x58b910
58aadd:	53                   	push   %ebx
58aade:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
58aae5:	00
58aae6:	e8 f5 a6 f5 ff       	call   0x4e51e0
58aaeb:	8b e8                	mov    %eax,%ebp
58aaed:	e8 1e d3 f8 ff       	call   0x517e10
58aaf2:	50                   	push   %eax
58aaf3:	e8 38 e6 f6 ff       	call   0x4f9130
58aaf8:	8b f8                	mov    %eax,%edi
58aafa:	83 c4 0c             	add    $0xc,%esp
58aafd:	85 ff                	test   %edi,%edi
58aaff:	0f 84 5f 01 00 00    	je     0x58ac64
58ab05:	8d 44 24 1c          	lea    0x1c(%esp),%eax
58ab09:	50                   	push   %eax
58ab0a:	6a 03                	push   $0x3
58ab0c:	6a 6c                	push   $0x6c
58ab0e:	57                   	push   %edi
58ab0f:	e8 1c e0 f6 ff       	call   0x4f8b30
58ab14:	83 c4 10             	add    $0x10,%esp
58ab17:	85 c0                	test   %eax,%eax
58ab19:	0f 84 60 01 00 00    	je     0x58ac7f
58ab1f:	6a 00                	push   $0x0
58ab21:	6a 00                	push   $0x0
58ab23:	8d 44 24 18          	lea    0x18(%esp),%eax
58ab27:	50                   	push   %eax
58ab28:	57                   	push   %edi
58ab29:	e8 a2 c4 06 00       	call   0x5f6fd0
58ab2e:	83 c4 10             	add    $0x10,%esp
58ab31:	85 c0                	test   %eax,%eax
58ab33:	74 67                	je     0x58ab9c
58ab35:	ff 74 24 10          	push   0x10(%esp)
58ab39:	e8 62 ca f8 ff       	call   0x5175a0
58ab3e:	83 c4 04             	add    $0x4,%esp
58ab41:	85 c0                	test   %eax,%eax
58ab43:	0f 84 36 01 00 00    	je     0x58ac7f
58ab49:	50                   	push   %eax
58ab4a:	e8 e1 0f fd ff       	call   0x55bb30
58ab4f:	8b f0                	mov    %eax,%esi
58ab51:	83 c4 04             	add    $0x4,%esp
58ab54:	85 f6                	test   %esi,%esi
58ab56:	0f 84 23 01 00 00    	je     0x58ac7f
58ab5c:	56                   	push   %esi
58ab5d:	53                   	push   %ebx
58ab5e:	e8 2d a3 f5 ff       	call   0x4e4e90
58ab63:	83 c4 08             	add    $0x8,%esp
58ab66:	56                   	push   %esi
58ab67:	85 c0                	test   %eax,%eax
58ab69:	78 0a                	js     0x58ab75
58ab6b:	e8 e0 0f fd ff       	call   0x55bb50
58ab70:	83 c4 04             	add    $0x4,%esp
58ab73:	eb 11                	jmp    0x58ab86
58ab75:	53                   	push   %ebx
58ab76:	e8 d5 a5 f5 ff       	call   0x4e5150
58ab7b:	83 c4 08             	add    $0x8,%esp
58ab7e:	85 c0                	test   %eax,%eax
58ab80:	0f 84 d3 00 00 00    	je     0x58ac59
58ab86:	6a 00                	push   $0x0
58ab88:	6a 00                	push   $0x0
58ab8a:	8d 44 24 18          	lea    0x18(%esp),%eax
58ab8e:	50                   	push   %eax
58ab8f:	57                   	push   %edi
58ab90:	e8 3b c4 06 00       	call   0x5f6fd0
58ab95:	83 c4 10             	add    $0x10,%esp
58ab98:	85 c0                	test   %eax,%eax
58ab9a:	75 99                	jne    0x58ab35
58ab9c:	e8 1f dc f4 ff       	call   0x4d87c0
58aba1:	57                   	push   %edi
58aba2:	e8 a9 e0 f6 ff       	call   0x4f8c50
58aba7:	ff 74 24 14          	push   0x14(%esp)
58abab:	e8 30 c6 fc ff       	call   0x5571e0
58abb0:	55                   	push   %ebp
58abb1:	53                   	push   %ebx
58abb2:	e8 29 a6 f5 ff       	call   0x4e51e0
58abb7:	8b 6c 24 28          	mov    0x28(%esp),%ebp
58abbb:	8d 44 24 24          	lea    0x24(%esp),%eax
58abbf:	55                   	push   %ebp
58abc0:	50                   	push   %eax
58abc1:	e8 5a f3 fc ff       	call   0x559f20
58abc6:	8b f0                	mov    %eax,%esi
58abc8:	83 c4 18             	add    $0x18,%esp
58abcb:	85 f6                	test   %esi,%esi
58abcd:	0f 85 ad fe ff ff    	jne    0x58aa80
58abd3:	e8 b0 00 05 00       	call   0x5dac88
58abd8:	83 38 00             	cmpl   $0x0,(%eax)
58abdb:	0f 84 dc 00 00 00    	je     0x58acbd
58abe1:	68 e5 02 00 00       	push   $0x2e5
58abe6:	68 ec 48 66 00       	push   $0x6648ec
58abeb:	ff 15 58 21 60 00    	call   *0x602158
58abf1:	50                   	push   %eax
58abf2:	6a 0a                	push   $0xa
58abf4:	6a 02                	push   $0x2
58abf6:	e8 85 e3 f4 ff       	call   0x4d8f80
58abfb:	68 04 1a 63 00       	push   $0x631a04
58ac00:	55                   	push   %ebp
58ac01:	68 04 49 66 00       	push   $0x664904
58ac06:	6a 03                	push   $0x3