4058c5:	33 db                	xor    %ebx,%ebx
4058c7:	39 5d 18             	cmp    %ebx,0x18(%ebp)
4058ca:	0f 94 c3             	sete   %bl
4058cd:	33 c0                	xor    %eax,%eax
4058cf:	50                   	push   %eax
4058d0:	57                   	push   %edi
4058d1:	8d 45 f4             	lea    -0xc(%ebp),%eax
4058d4:	50                   	push   %eax
4058d5:	53                   	push   %ebx
4058d6:	e8 63 29 00 00       	call   0x40823e
4058db:	8b f0                	mov    %eax,%esi
4058dd:	89 75 0c             	mov    %esi,0xc(%ebp)
4058e0:	85 f6                	test   %esi,%esi
4058e2:	0f 88 40 fe ff ff    	js     0x405728
4058e8:	ff 75 fc             	push   -0x4(%ebp)
4058eb:	e8 e0 9a 03 00       	call   0x43f3d0
4058f0:	8b f8                	mov    %eax,%edi
4058f2:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4058f5:	85 ff                	test   %edi,%edi
4058f7:	0f 85 a5 00 00 00    	jne    0x4059a2
4058fd:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
405902:	57                   	push   %edi
405903:	68 e6 04 00 00       	push   $0x4e6
405908:	8b f7                	mov    %edi,%esi
40590a:	68 bc cc 44 00       	push   $0x44ccbc
40590f:	89 75 0c             	mov    %esi,0xc(%ebp)
405912:	e8 bc de ff ff       	call   0x4037d3
405917:	68 98 d3 44 00       	push   $0x44d398
40591c:	eb 1f                	jmp    0x40593d
40591e:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
405923:	57                   	push   %edi
405924:	68 b0 04 00 00       	push   $0x4b0
405929:	8b f7                	mov    %edi,%esi
40592b:	68 bc cc 44 00       	push   $0x44ccbc
405930:	89 75 0c             	mov    %esi,0xc(%ebp)
405933:	e8 9b de ff ff       	call   0x4037d3
405938:	68 c8 d2 44 00       	push   $0x44d2c8
40593d:	57                   	push   %edi
40593e:	e9 eb fd ff ff       	jmp    0x40572e
405943:	ff 75 f8             	push   -0x8(%ebp)
405946:	68 14 d3 44 00       	push   $0x44d314
40594b:	56                   	push   %esi
40594c:	e8 de a7 03 00       	call   0x44012f
405951:	83 c4 0c             	add    $0xc,%esp
405954:	e9 f7 01 00 00       	jmp    0x405b50
405959:	68 78 d3 44 00       	push   $0x44d378
40595e:	e9 6c fd ff ff       	jmp    0x4056cf
405963:	68 50 d3 44 00       	push   $0x44d350
405968:	e9 62 fd ff ff       	jmp    0x4056cf
40596d:	68 a4 d1 44 00       	push   $0x44d1a4
405972:	e9 58 fd ff ff       	jmp    0x4056cf
405977:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40597c:	57                   	push   %edi
40597d:	68 b6 04 00 00       	push   $0x4b6
405982:	8b f7                	mov    %edi,%esi
405984:	68 bc cc 44 00       	push   $0x44ccbc
405989:	89 75 0c             	mov    %esi,0xc(%ebp)
40598c:	e8 42 de ff ff       	call   0x4037d3
405991:	68 f0 d2 44 00       	push   $0x44d2f0
405996:	eb a5                	jmp    0x40593d
405998:	68 a8 d2 44 00       	push   $0x44d2a8
40599d:	e9 8b fd ff ff       	jmp    0x40572d
4059a2:	ff 75 f4             	push   -0xc(%ebp)
4059a5:	33 c0                	xor    %eax,%eax
4059a7:	50                   	push   %eax
4059a8:	57                   	push   %edi
4059a9:	e8 32 9a 03 00       	call   0x43f3e0
4059ae:	85 c0                	test   %eax,%eax
4059b0:	74 35                	je     0x4059e7
4059b2:	0f b7 f0             	movzwl %ax,%esi
4059b5:	81 ce 00 00 07 80    	or     $0x80070000,%esi
4059bb:	85 c0                	test   %eax,%eax
4059bd:	0f 4e f0             	cmovle %eax,%esi
4059c0:	b8 05 40 00 80       	mov    $0x80004005,%eax
4059c5:	85 f6                	test   %esi,%esi
4059c7:	0f 49 f0             	cmovns %eax,%esi
4059ca:	56                   	push   %esi
4059cb:	68 ea 04 00 00       	push   $0x4ea
4059d0:	68 bc cc 44 00       	push   $0x44ccbc
4059d5:	89 75 0c             	mov    %esi,0xc(%ebp)
4059d8:	e8 f6 dd ff ff       	call   0x4037d3
4059dd:	68 b4 d3 44 00       	push   $0x44d3b4
4059e2:	e9 46 fd ff ff       	jmp    0x40572d
4059e7:	33 c9                	xor    %ecx,%ecx
4059e9:	8b f9                	mov    %ecx,%edi
4059eb:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
4059ee:	76 31                	jbe    0x405a21
4059f0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4059f3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4059f6:	8b 14 b8             	mov    (%eax,%edi,4),%edx
4059f9:	33 f6                	xor    %esi,%esi
4059fb:	66 39 32             	cmp    %si,(%edx)
4059fe:	8b 75 0c             	mov    0xc(%ebp),%esi
405a01:	74 17                	je     0x405a1a
405a03:	52                   	push   %edx
405a04:	8d 47 01             	lea    0x1(%edi),%eax
405a07:	50                   	push   %eax
405a08:	ff 75 e4             	push   -0x1c(%ebp)
405a0b:	e8 d0 99 03 00       	call   0x43f3e0
405a10:	85 c0                	test   %eax,%eax
405a12:	75 63                	jne    0x405a77
405a14:	8b 45 ec             	mov    -0x14(%ebp),%eax
405a17:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405a1a:	47                   	inc    %edi
405a1b:	3b f9                	cmp    %ecx,%edi
405a1d:	72 d7                	jb     0x4059f6
405a1f:	33 c9                	xor    %ecx,%ecx
405a21:	8b 7d e4             	mov    -0x1c(%ebp),%edi
405a24:	8d 45 f0             	lea    -0x10(%ebp),%eax
405a27:	50                   	push   %eax
405a28:	68 24 b5 44 00       	push   $0x44b524
405a2d:	57                   	push   %edi
405a2e:	51                   	push   %ecx
405a2f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
405a32:	e8 b9 99 03 00       	call   0x43f3f0
405a37:	3d ea 00 00 00       	cmp    $0xea,%eax
405a3c:	74 6e                	je     0x405aac
405a3e:	85 c0                	test   %eax,%eax
405a40:	74 6a                	je     0x405aac
405a42:	0f b7 f0             	movzwl %ax,%esi
405a45:	81 ce 00 00 07 80    	or     $0x80070000,%esi
405a4b:	85 c0                	test   %eax,%eax
405a4d:	0f 4e f0             	cmovle %eax,%esi
405a50:	b8 05 40 00 80       	mov    $0x80004005,%eax
405a55:	85 f6                	test   %esi,%esi
405a57:	0f 49 f0             	cmovns %eax,%esi
405a5a:	56                   	push   %esi
405a5b:	68 fe 04 00 00       	push   $0x4fe
405a60:	68 bc cc 44 00       	push   $0x44ccbc
405a65:	89 75 0c             	mov    %esi,0xc(%ebp)
405a68:	e8 66 dd ff ff       	call   0x4037d3
405a6d:	68 f8 d3 44 00       	push   $0x44d3f8
405a72:	e9 b6 fc ff ff       	jmp    0x40572d
405a77:	0f b7 f0             	movzwl %ax,%esi
405a7a:	81 ce 00 00 07 80    	or     $0x80070000,%esi
405a80:	85 c0                	test   %eax,%eax
405a82:	0f 4e f0             	cmovle %eax,%esi
405a85:	b8 05 40 00 80       	mov    $0x80004005,%eax
405a8a:	85 f6                	test   %esi,%esi
405a8c:	0f 49 f0             	cmovns %eax,%esi
405a8f:	56                   	push   %esi
405a90:	68 f2 04 00 00       	push   $0x4f2
405a95:	68 bc cc 44 00       	push   $0x44ccbc
405a9a:	89 75 0c             	mov    %esi,0xc(%ebp)
405a9d:	e8 31 dd ff ff       	call   0x4037d3
405aa2:	68 d8 d3 44 00       	push   $0x44d3d8
405aa7:	e9 81 fc ff ff       	jmp    0x40572d
405aac:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
405ab0:	0f 84 8e 00 00 00    	je     0x405b44
405ab6:	8b 45 f0             	mov    -0x10(%ebp),%eax
405ab9:	40                   	inc    %eax
405aba:	50                   	push   %eax
405abb:	89 45 f0             	mov    %eax,-0x10(%ebp)
405abe:	8d 45 f8             	lea    -0x8(%ebp),%eax
405ac1:	50                   	push   %eax
405ac2:	53                   	push   %ebx
405ac3:	e8 57 27 00 00       	call   0x40821f
405ac8:	8b f0                	mov    %eax,%esi
405aca:	89 75 0c             	mov    %esi,0xc(%ebp)
405acd:	85 f6                	test   %esi,%esi
405acf:	79 0a                	jns    0x405adb
405ad1:	68 18 d4 44 00       	push   $0x44d418
405ad6:	e9 52 fc ff ff       	jmp    0x40572d
405adb:	8d 45 f0             	lea    -0x10(%ebp),%eax
405ade:	33 f6                	xor    %esi,%esi
405ae0:	50                   	push   %eax
405ae1:	ff 75 f8             	push   -0x8(%ebp)
405ae4:	57                   	push   %edi
405ae5:	56                   	push   %esi
405ae6:	e8 05 99 03 00       	call   0x43f3f0
405aeb:	85 c0                	test   %eax,%eax
405aed:	74 35                	je     0x405b24
405aef:	0f b7 f0             	movzwl %ax,%esi
405af2:	81 ce 00 00 07 80    	or     $0x80070000,%esi
405af8:	85 c0                	test   %eax,%eax
405afa:	0f 4e f0             	cmovle %eax,%esi
405afd:	b8 05 40 00 80       	mov    $0x80004005,%eax
405b02:	85 f6                	test   %esi,%esi
405b04:	0f 49 f0             	cmovns %eax,%esi
405b07:	56                   	push   %esi
405b08:	68 08 05 00 00       	push   $0x508
405b0d:	68 bc cc 44 00       	push   $0x44ccbc
405b12:	89 75 0c             	mov    %esi,0xc(%ebp)
405b15:	e8 b9 dc ff ff       	call   0x4037d3
405b1a:	68 34 d4 44 00       	push   $0x44d434
405b1f:	e9 09 fc ff ff       	jmp    0x40572d
405b24:	56                   	push   %esi
405b25:	ff 75 f8             	push   -0x8(%ebp)
405b28:	ff 75 10             	push   0x10(%ebp)
405b2b:	53                   	push   %ebx
405b2c:	e8 50 27 00 00       	call   0x408281
405b31:	8b f0                	mov    %eax,%esi
405b33:	89 75 0c             	mov    %esi,0xc(%ebp)
405b36:	85 f6                	test   %esi,%esi
405b38:	79 0a                	jns    0x405b44
405b3a:	68 70 cf 44 00       	push   $0x44cf70
405b3f:	e9 e9 fb ff ff       	jmp    0x40572d
405b44:	8b 4d 14             	mov    0x14(%ebp),%ecx
405b47:	85 c9                	test   %ecx,%ecx
405b49:	74 05                	je     0x405b50
405b4b:	8b 45 f0             	mov    -0x10(%ebp),%eax
405b4e:	89 01                	mov    %eax,(%ecx)
405b50:	8b 5d fc             	mov    -0x4(%ebp),%ebx
405b53:	ff 75 08             	push   0x8(%ebp)
405b56:	ff 15 b8 b1 44 00    	call   *0x44b1b8
405b5c:	8b 45 ec             	mov    -0x14(%ebp),%eax
405b5f:	85 c0                	test   %eax,%eax
405b61:	74 39                	je     0x405b9c
405b63:	33 c9                	xor    %ecx,%ecx
405b65:	8b f9                	mov    %ecx,%edi
405b67:	85 db                	test   %ebx,%ebx
405b69:	74 2b                	je     0x405b96
405b6b:	8b f0                	mov    %eax,%esi
405b6d:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
405b71:	74 10                	je     0x405b83
405b73:	83 3c be 00          	cmpl   $0x0,(%esi,%edi,4)
405b77:	74 12                	je     0x405b8b
405b79:	ff 34 be             	push   (%esi,%edi,4)
405b7c:	e8 6e f9 03 00       	call   0x4454ef
405b81:	eb 08                	jmp    0x405b8b
405b83:	ff 34 be             	push   (%esi,%edi,4)
405b86:	e8 08 cc ff ff       	call   0x402793
405b8b:	47                   	inc    %edi
405b8c:	3b fb                	cmp    %ebx,%edi
405b8e:	72 dd                	jb     0x405b6d
405b90:	8b 75 0c             	mov    0xc(%ebp),%esi
405b93:	8b 45 ec             	mov    -0x14(%ebp),%eax
405b96:	50                   	push   %eax
405b97:	e8 fd dd ff ff       	call   0x403999
405b9c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405b9f:	85 c0                	test   %eax,%eax
405ba1:	74 06                	je     0x405ba9
405ba3:	50                   	push   %eax
405ba4:	e8 17 98 03 00       	call   0x43f3c0
405ba9:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
405bad:	74 1e                	je     0x405bcd
405baf:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
405bb3:	74 08                	je     0x405bbd
405bb5:	ff 75 f4             	push   -0xc(%ebp)
405bb8:	e8 32 f9 03 00       	call   0x4454ef
405bbd:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405bc1:	74 22                	je     0x405be5
405bc3:	ff 75 f8             	push   -0x8(%ebp)
405bc6:	e8 24 f9 03 00       	call   0x4454ef
405bcb:	eb 18                	jmp    0x405be5
405bcd:	33 c0                	xor    %eax,%eax
405bcf:	50                   	push   %eax
405bd0:	e8 be cb ff ff       	call   0x402793
405bd5:	ff 75 f4             	push   -0xc(%ebp)
405bd8:	e8 b6 cb ff ff       	call   0x402793
405bdd:	ff 75 f8             	push   -0x8(%ebp)
405be0:	e8 ae cb ff ff       	call   0x402793
405be5:	5f                   	pop    %edi
405be6:	8b c6                	mov    %esi,%eax
405be8:	5e                   	pop    %esi
405be9:	5b                   	pop    %ebx
405bea:	8b e5                	mov    %ebp,%esp
405bec:	5d                   	pop    %ebp
405bed:	c2 14 00             	ret    $0x14
405bf0:	55                   	push   %ebp
405bf1:	8b ec                	mov    %esp,%ebp
405bf3:	51                   	push   %ecx
405bf4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405bf8:	b8 7c da 44 00       	mov    $0x44da7c,%eax
405bfd:	83 7d 08 2b          	cmpl   $0x2b,0x8(%ebp)
405c01:	56                   	push   %esi
405c02:	57                   	push   %edi
405c03:	bf 5c da 44 00       	mov    $0x44da5c,%edi
405c08:	0f 45 f8             	cmovne %eax,%edi
405c0b:	8d 45 fc             	lea    -0x4(%ebp),%eax
405c0e:	50                   	push   %eax
405c0f:	68 19 01 02 00       	push   $0x20119
405c14:	68 a0 da 44 00       	push   $0x44daa0
405c19:	68 02 00 00 80       	push   $0x80000002
405c1e:	e8 1c b2 03 00       	call   0x440e3f
405c23:	8b f0                	mov    %eax,%esi
405c25:	85 f6                	test   %esi,%esi
405c27:	79 07                	jns    0x405c30
405c29:	68 f4 da 44 00       	push   $0x44daf4
405c2e:	eb 36                	jmp    0x405c66
405c30:	ff 75 0c             	push   0xc(%ebp)
405c33:	57                   	push   %edi
405c34:	ff 75 fc             	push   -0x4(%ebp)
405c37:	e8 32 b3 03 00       	call   0x440f6e
405c3c:	8b f0                	mov    %eax,%esi
405c3e:	85 f6                	test   %esi,%esi
405c40:	79 11                	jns    0x405c53
405c42:	57                   	push   %edi
405c43:	68 18 db 44 00       	push   $0x44db18
405c48:	56                   	push   %esi
405c49:	e8 e1 a4 03 00       	call   0x44012f
405c4e:	83 c4 0c             	add    $0xc,%esp
405c51:	eb 1b                	jmp    0x405c6e
405c53:	ff 75 0c             	push   0xc(%ebp)
405c56:	e8 d3 ce ff ff       	call   0x402b2e
405c5b:	8b f0                	mov    %eax,%esi
405c5d:	85 f6                	test   %esi,%esi
405c5f:	79 0d                	jns    0x405c6e
405c61:	68 40 db 44 00       	push   $0x44db40
405c66:	56                   	push   %esi
405c67:	e8 c3 a4 03 00       	call   0x44012f
405c6c:	59                   	pop    %ecx
405c6d:	59                   	pop    %ecx
405c6e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
405c72:	74 09                	je     0x405c7d
405c74:	ff 75 fc             	push   -0x4(%ebp)
405c77:	ff 15 00 b0 44 00    	call   *0x44b000
405c7d:	5f                   	pop    %edi
405c7e:	8b c6                	mov    %esi,%eax
405c80:	5e                   	pop    %esi
405c81:	8b e5                	mov    %ebp,%esp
405c83:	5d                   	pop    %ebp
405c84:	c2 08 00             	ret    $0x8
405c87:	55                   	push   %ebp
405c88:	8b ec                	mov    %esp,%ebp
405c8a:	51                   	push   %ecx
405c8b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405c8f:	8d 45 fc             	lea    -0x4(%ebp),%eax
405c92:	53                   	push   %ebx
405c93:	8b 5d 08             	mov    0x8(%ebp),%ebx
405c96:	56                   	push   %esi
405c97:	50                   	push   %eax
405c98:	ff 75 0c             	push   0xc(%ebp)
405c9b:	53                   	push   %ebx
405c9c:	e8 15 f9 ff ff       	call   0x4055b6
405ca1:	8b f0                	mov    %eax,%esi
405ca3:	85 f6                	test   %esi,%esi
405ca5:	79 13                	jns    0x405cba
405ca7:	ff 75 0c             	push   0xc(%ebp)
405caa:	68 70 cc 44 00       	push   $0x44cc70
405caf:	56                   	push   %esi
405cb0:	e8 7a a4 03 00       	call   0x44012f
405cb5:	83 c4 0c             	add    $0xc,%esp
405cb8:	eb 49                	jmp    0x405d03
405cba:	83 fe 01             	cmp    $0x1,%esi
405cbd:	75 07                	jne    0x405cc6
405cbf:	be 90 04 07 80       	mov    $0x80070490,%esi
405cc4:	eb 3d                	jmp    0x405d03
405cc6:	57                   	push   %edi
405cc7:	6b 7d fc 38          	imul   $0x38,-0x4(%ebp),%edi
405ccb:	03 7b 20             	add    0x20(%ebx),%edi
405cce:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
405cd2:	75 29                	jne    0x405cfd
405cd4:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
405cd8:	7e 23                	jle    0x405cfd
405cda:	8d 47 08             	lea    0x8(%edi),%eax
405cdd:	50                   	push   %eax
405cde:	ff 77 34             	push   0x34(%edi)
405ce1:	ff 57 30             	call   *0x30(%edi)
405ce4:	8b f0                	mov    %eax,%esi