593996:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
59399a:	eb 1f                	jmp    0x5939bb
59399c:	ff b6 48 04 00 00    	push   0x448(%esi)
5939a2:	8d 86 08 04 00 00    	lea    0x408(%esi),%eax
5939a8:	50                   	push   %eax
5939a9:	8d 47 62             	lea    0x62(%edi),%eax
5939ac:	50                   	push   %eax
5939ad:	e8 1e f4 03 00       	call   0x5d2dd0
5939b2:	8b 8e 48 04 00 00    	mov    0x448(%esi),%ecx
5939b8:	83 c4 0c             	add    $0xc,%esp
5939bb:	8b 44 24 14          	mov    0x14(%esp),%eax
5939bf:	83 c1 62             	add    $0x62,%ecx
5939c2:	89 38                	mov    %edi,(%eax)
5939c4:	8b 44 24 18          	mov    0x18(%esp),%eax
5939c8:	5f                   	pop    %edi
5939c9:	5e                   	pop    %esi
5939ca:	89 08                	mov    %ecx,(%eax)
5939cc:	b8 01 00 00 00       	mov    $0x1,%eax
5939d1:	c3                   	ret
5939d2:	ff 74 24 14          	push   0x14(%esp)
5939d6:	8b 46 7c             	mov    0x7c(%esi),%eax
5939d9:	6a 00                	push   $0x0
5939db:	6a 03                	push   $0x3
5939dd:	ff b0 d4 00 00 00    	push   0xd4(%eax)
5939e3:	e8 48 51 f6 ff       	call   0x4f8b30
5939e8:	8b c8                	mov    %eax,%ecx
5939ea:	83 c4 10             	add    $0x10,%esp
5939ed:	85 c9                	test   %ecx,%ecx
5939ef:	7f d3                	jg     0x5939c4
5939f1:	68 dd 00 00 00       	push   $0xdd
5939f6:	68 e0 71 66 00       	push   $0x6671e0
5939fb:	6a 44                	push   $0x44
5939fd:	68 4c 02 00 00       	push   $0x24c
593a02:	6a 50                	push   $0x50
593a04:	56                   	push   %esi
593a05:	e8 06 b7 ff ff       	call   0x58f110
593a0a:	83 c4 18             	add    $0x18,%esp
593a0d:	5f                   	pop    %edi
593a0e:	33 c0                	xor    %eax,%eax
593a10:	5e                   	pop    %esi
593a11:	c3                   	ret
593a12:	cc                   	int3
593a13:	cc                   	int3
593a14:	cc                   	int3
593a15:	cc                   	int3
593a16:	cc                   	int3
593a17:	cc                   	int3
593a18:	cc                   	int3
593a19:	cc                   	int3
593a1a:	cc                   	int3
593a1b:	cc                   	int3
593a1c:	cc                   	int3
593a1d:	cc                   	int3
593a1e:	cc                   	int3
593a1f:	cc                   	int3
593a20:	b8 10 00 00 00       	mov    $0x10,%eax
593a25:	e8 86 dd 03 00       	call   0x5d17b0
593a2a:	53                   	push   %ebx
593a2b:	55                   	push   %ebp
593a2c:	56                   	push   %esi
593a2d:	57                   	push   %edi
593a2e:	68 f0 34 59 00       	push   $0x5934f0
593a33:	e8 b8 15 f5 ff       	call   0x4e4ff0
593a38:	83 c4 04             	add    $0x4,%esp
593a3b:	89 44 24 10          	mov    %eax,0x10(%esp)
593a3f:	33 ed                	xor    %ebp,%ebp
593a41:	85 c0                	test   %eax,%eax
593a43:	75 18                	jne    0x593a5d
593a45:	68 cc 08 00 00       	push   $0x8cc
593a4a:	68 e0 71 66 00       	push   $0x6671e0
593a4f:	6a 41                	push   $0x41
593a51:	68 1d 02 00 00       	push   $0x21d
593a56:	6a 50                	push   $0x50
593a58:	e9 44 01 00 00       	jmp    0x593ba1
593a5d:	8b 4c 24 28          	mov    0x28(%esp),%ecx
593a61:	8b 51 04             	mov    0x4(%ecx),%edx
593a64:	8b 19                	mov    (%ecx),%ebx
593a66:	83 fa 02             	cmp    $0x2,%edx
593a69:	0f 82 1c 01 00 00    	jb     0x593b8b
593a6f:	0f b6 3b             	movzbl (%ebx),%edi
593a72:	83 c2 fe             	add    $0xfffffffe,%edx
593a75:	0f b6 43 01          	movzbl 0x1(%ebx),%eax
593a79:	83 c3 02             	add    $0x2,%ebx
593a7c:	c1 e7 08             	shl    $0x8,%edi
593a7f:	0b f8                	or     %eax,%edi
593a81:	3b d7                	cmp    %edi,%edx
593a83:	0f 82 02 01 00 00    	jb     0x593b8b
593a89:	2b d7                	sub    %edi,%edx
593a8b:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
593a8e:	89 01                	mov    %eax,(%ecx)
593a90:	89 51 04             	mov    %edx,0x4(%ecx)
593a93:	85 ff                	test   %edi,%edi
593a95:	74 66                	je     0x593afd
593a97:	83 ff 02             	cmp    $0x2,%edi
593a9a:	0f 82 c5 00 00 00    	jb     0x593b65
593aa0:	0f b6 33             	movzbl (%ebx),%esi
593aa3:	83 ef 02             	sub    $0x2,%edi
593aa6:	0f b6 43 01          	movzbl 0x1(%ebx),%eax
593aaa:	83 c3 02             	add    $0x2,%ebx
593aad:	c1 e6 08             	shl    $0x8,%esi
593ab0:	0b f0                	or     %eax,%esi
593ab2:	89 5c 24 18          	mov    %ebx,0x18(%esp)
593ab6:	3b fe                	cmp    %esi,%edi
593ab8:	0f 82 a7 00 00 00    	jb     0x593b65
593abe:	56                   	push   %esi
593abf:	8d 44 24 18          	lea    0x18(%esp),%eax
593ac3:	89 5c 24 18          	mov    %ebx,0x18(%esp)
593ac7:	50                   	push   %eax
593ac8:	6a 00                	push   $0x0
593aca:	03 de                	add    %esi,%ebx
593acc:	2b fe                	sub    %esi,%edi
593ace:	e8 1d 82 fc ff       	call   0x55bcf0
593ad3:	8b e8                	mov    %eax,%ebp
593ad5:	83 c4 0c             	add    $0xc,%esp
593ad8:	85 ed                	test   %ebp,%ebp
593ada:	74 7b                	je     0x593b57
593adc:	8b 4c 24 18          	mov    0x18(%esp),%ecx
593ae0:	03 ce                	add    %esi,%ecx
593ae2:	39 4c 24 14          	cmp    %ecx,0x14(%esp)
593ae6:	75 5e                	jne    0x593b46
593ae8:	55                   	push   %ebp
593ae9:	ff 74 24 14          	push   0x14(%esp)
593aed:	e8 5e 16 f5 ff       	call   0x4e5150
593af2:	83 c4 08             	add    $0x8,%esp
593af5:	85 c0                	test   %eax,%eax
593af7:	74 38                	je     0x593b31
593af9:	85 ff                	test   %edi,%edi
593afb:	75 9a                	jne    0x593a97
593afd:	8b 74 24 24          	mov    0x24(%esp),%esi
593b01:	68 50 bb 55 00       	push   $0x55bb50
593b06:	8b 46 7c             	mov    0x7c(%esi),%eax
593b09:	ff b0 24 02 00 00    	push   0x224(%eax)
593b0f:	e8 dc 15 f5 ff       	call   0x4e50f0
593b14:	8b 46 7c             	mov    0x7c(%esi),%eax
593b17:	83 c4 08             	add    $0x8,%esp
593b1a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
593b1e:	5f                   	pop    %edi
593b1f:	5e                   	pop    %esi
593b20:	5d                   	pop    %ebp
593b21:	89 88 24 02 00 00    	mov    %ecx,0x224(%eax)
593b27:	b8 01 00 00 00       	mov    $0x1,%eax
593b2c:	5b                   	pop    %ebx
593b2d:	83 c4 10             	add    $0x10,%esp
593b30:	c3                   	ret
593b31:	68 ef 08 00 00       	push   $0x8ef
593b36:	68 e0 71 66 00       	push   $0x6671e0
593b3b:	6a 41                	push   $0x41
593b3d:	68 1d 02 00 00       	push   $0x21d
593b42:	6a 50                	push   $0x50
593b44:	eb 5b                	jmp    0x593ba1
593b46:	68 e9 08 00 00       	push   $0x8e9
593b4b:	68 e0 71 66 00       	push   $0x6671e0
593b50:	68 83 00 00 00       	push   $0x83
593b55:	eb 43                	jmp    0x593b9a
593b57:	68 e4 08 00 00       	push   $0x8e4
593b5c:	68 e0 71 66 00       	push   $0x6671e0
593b61:	6a 0d                	push   $0xd
593b63:	eb 35                	jmp    0x593b9a
593b65:	68 dd 08 00 00       	push   $0x8dd
593b6a:	68 e0 71 66 00       	push   $0x6671e0
593b6f:	68 9f 00 00 00       	push   $0x9f
593b74:	68 1d 02 00 00       	push   $0x21d
593b79:	6a 32                	push   $0x32
593b7b:	ff 74 24 38          	push   0x38(%esp)
593b7f:	e8 8c b5 ff ff       	call   0x58f110
593b84:	83 c4 18             	add    $0x18,%esp
593b87:	33 ed                	xor    %ebp,%ebp
593b89:	eb 22                	jmp    0x593bad
593b8b:	68 d2 08 00 00       	push   $0x8d2
593b90:	68 e0 71 66 00       	push   $0x6671e0
593b95:	68 9f 00 00 00       	push   $0x9f
593b9a:	68 1d 02 00 00       	push   $0x21d
593b9f:	6a 32                	push   $0x32
593ba1:	ff 74 24 38          	push   0x38(%esp)
593ba5:	e8 66 b5 ff ff       	call   0x58f110
593baa:	83 c4 18             	add    $0x18,%esp
593bad:	68 50 bb 55 00       	push   $0x55bb50
593bb2:	ff 74 24 14          	push   0x14(%esp)
593bb6:	e8 35 15 f5 ff       	call   0x4e50f0
593bbb:	55                   	push   %ebp
593bbc:	e8 8f 7f fc ff       	call   0x55bb50
593bc1:	83 c4 0c             	add    $0xc,%esp
593bc4:	33 c0                	xor    %eax,%eax
593bc6:	5f                   	pop    %edi
593bc7:	5e                   	pop    %esi
593bc8:	5d                   	pop    %ebp
593bc9:	5b                   	pop    %ebx
593bca:	83 c4 10             	add    $0x10,%esp
593bcd:	c3                   	ret
593bce:	cc                   	int3
593bcf:	cc                   	int3
593bd0:	b8 04 00 00 00       	mov    $0x4,%eax
593bd5:	e8 d6 db 03 00       	call   0x5d17b0
593bda:	56                   	push   %esi
593bdb:	8b 74 24 0c          	mov    0xc(%esp),%esi
593bdf:	8d 44 24 04          	lea    0x4(%esp),%eax
593be3:	57                   	push   %edi
593be4:	8b 7c 24 14          	mov    0x14(%esp),%edi
593be8:	50                   	push   %eax
593be9:	8b 46 6c             	mov    0x6c(%esi),%eax
593bec:	ff 76 74             	push   0x74(%esi)
593bef:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
593bf6:	00
593bf7:	8b 40 04             	mov    0x4(%eax),%eax
593bfa:	03 46 78             	add    0x78(%esi),%eax
593bfd:	50                   	push   %eax
593bfe:	57                   	push   %edi
593bff:	56                   	push   %esi
593c00:	e8 6b f0 ff ff       	call   0x592c70
593c05:	83 c4 14             	add    $0x14,%esp
593c08:	85 c0                	test   %eax,%eax
593c0a:	0f 88 97 00 00 00    	js     0x593ca7
593c10:	83 ff 16             	cmp    $0x16,%edi
593c13:	75 49                	jne    0x593c5e
593c15:	8b 4e 04             	mov    0x4(%esi),%ecx
593c18:	8b 41 64             	mov    0x64(%ecx),%eax
593c1b:	f6 40 30 08          	testb  $0x8,0x30(%eax)
593c1f:	75 22                	jne    0x593c43
593c21:	8b 01                	mov    (%ecx),%eax
593c23:	3d 04 03 00 00       	cmp    $0x304,%eax
593c28:	7c 19                	jl     0x593c43
593c2a:	3d 00 00 01 00       	cmp    $0x10000,%eax
593c2f:	74 12                	je     0x593c43
593c31:	8b 46 40             	mov    0x40(%esi),%eax
593c34:	83 f8 21             	cmp    $0x21,%eax
593c37:	74 25                	je     0x593c5e
593c39:	83 f8 2b             	cmp    $0x2b,%eax
593c3c:	74 20                	je     0x593c5e
593c3e:	83 f8 2a             	cmp    $0x2a,%eax
593c41:	74 1b                	je     0x593c5e
593c43:	8b 46 6c             	mov    0x6c(%esi),%eax
593c46:	ff 74 24 08          	push   0x8(%esp)
593c4a:	8b 40 04             	mov    0x4(%eax),%eax
593c4d:	03 46 78             	add    0x78(%esi),%eax
593c50:	50                   	push   %eax
593c51:	56                   	push   %esi
593c52:	e8 19 f8 00 00       	call   0x5a3470
593c57:	83 c4 0c             	add    $0xc,%esp
593c5a:	85 c0                	test   %eax,%eax
593c5c:	74 49                	je     0x593ca7
593c5e:	8b 4e 74             	mov    0x74(%esi),%ecx
593c61:	8b 44 24 08          	mov    0x8(%esp),%eax
593c65:	3b c1                	cmp    %ecx,%eax
593c67:	75 30                	jne    0x593c99
593c69:	8b 96 84 00 00 00    	mov    0x84(%esi),%edx
593c6f:	85 d2                	test   %edx,%edx
593c71:	74 1d                	je     0x593c90
593c73:	ff b6 88 00 00 00    	push   0x88(%esi)
593c79:	8b 46 78             	mov    0x78(%esi),%eax
593c7c:	56                   	push   %esi
593c7d:	03 c1                	add    %ecx,%eax
593c7f:	50                   	push   %eax
593c80:	8b 46 6c             	mov    0x6c(%esi),%eax
593c83:	ff 70 04             	push   0x4(%eax)
593c86:	57                   	push   %edi
593c87:	ff 36                	push   (%esi)
593c89:	6a 01                	push   $0x1
593c8b:	ff d2                	call   *%edx
593c8d:	83 c4 1c             	add    $0x1c,%esp
593c90:	5f                   	pop    %edi
593c91:	b8 01 00 00 00       	mov    $0x1,%eax
593c96:	5e                   	pop    %esi
593c97:	59                   	pop    %ecx
593c98:	c3                   	ret
593c99:	01 46 78             	add    %eax,0x78(%esi)
593c9c:	2b c8                	sub    %eax,%ecx
593c9e:	5f                   	pop    %edi
593c9f:	89 4e 74             	mov    %ecx,0x74(%esi)
593ca2:	33 c0                	xor    %eax,%eax
593ca4:	5e                   	pop    %esi
593ca5:	59                   	pop    %ecx
593ca6:	c3                   	ret
593ca7:	5f                   	pop    %edi
593ca8:	83 c8 ff             	or     $0xffffffff,%eax
593cab:	5e                   	pop    %esi
593cac:	59                   	pop    %ecx
593cad:	c3                   	ret
593cae:	cc                   	int3
593caf:	cc                   	int3
593cb0:	56                   	push   %esi
593cb1:	8b 74 24 0c          	mov    0xc(%esp),%esi
593cb5:	6a 03                	push   $0x3
593cb7:	56                   	push   %esi
593cb8:	e8 63 04 01 00       	call   0x5a4120
593cbd:	83 c4 08             	add    $0x8,%esp
593cc0:	85 c0                	test   %eax,%eax
593cc2:	75 23                	jne    0x593ce7
593cc4:	68 f3 03 00 00       	push   $0x3f3
593cc9:	68 e0 71 66 00       	push   $0x6671e0
593cce:	6a 44                	push   $0x44
593cd0:	68 93 00 00 00       	push   $0x93
593cd5:	6a 50                	push   $0x50
593cd7:	ff 74 24 1c          	push   0x1c(%esp)
593cdb:	e8 30 b4 ff ff       	call   0x58f110
593ce0:	83 c4 18             	add    $0x18,%esp
593ce3:	33 c0                	xor    %eax,%eax
593ce5:	5e                   	pop    %esi
593ce6:	c3                   	ret
593ce7:	ff 74 24 10          	push   0x10(%esp)
593ceb:	56                   	push   %esi
593cec:	ff 74 24 10          	push   0x10(%esp)
593cf0:	e8 7b 00 00 00       	call   0x593d70
593cf5:	83 c4 0c             	add    $0xc,%esp
593cf8:	85 c0                	test   %eax,%eax
593cfa:	74 e7                	je     0x593ce3
593cfc:	56                   	push   %esi
593cfd:	e8 de ff 00 00       	call   0x5a3ce0
593d02:	83 c4 04             	add    $0x4,%esp
593d05:	85 c0                	test   %eax,%eax
593d07:	75 07                	jne    0x593d10
593d09:	68 fc 03 00 00       	push   $0x3fc
593d0e:	eb b9                	jmp    0x593cc9
593d10:	b8 01 00 00 00       	mov    $0x1,%eax
593d15:	5e                   	pop    %esi
593d16:	c3                   	ret
593d17:	cc                   	int3
593d18:	cc                   	int3
593d19:	cc                   	int3
593d1a:	cc                   	int3
593d1b:	cc                   	int3
593d1c:	cc                   	int3
593d1d:	cc                   	int3
593d1e:	cc                   	int3
593d1f:	cc                   	int3
593d20:	56                   	push   %esi
593d21:	8b 74 24 08          	mov    0x8(%esp),%esi
593d25:	57                   	push   %edi
593d26:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
593d2a:	8b 46 04             	mov    0x4(%esi),%eax
593d2d:	8b 48 64             	mov    0x64(%eax),%ecx
593d30:	75 08                	jne    0x593d3a
593d32:	8b 51 20             	mov    0x20(%ecx),%edx
593d35:	8b 79 24             	mov    0x24(%ecx),%edi
593d38:	eb 06                	jmp    0x593d40
593d3a:	8b 51 18             	mov    0x18(%ecx),%edx
593d3d:	8b 79 1c             	mov    0x1c(%ecx),%edi
593d40:	8b 46 7c             	mov    0x7c(%esi),%eax
593d43:	05 84 01 00 00       	add    $0x184,%eax
593d48:	50                   	push   %eax
593d49:	8b 41 14             	mov    0x14(%ecx),%eax
593d4c:	57                   	push   %edi
593d4d:	52                   	push   %edx
593d4e:	56                   	push   %esi
593d4f:	ff d0                	call   *%eax
593d51:	8b 4e 7c             	mov    0x7c(%esi),%ecx
593d54:	83 c4 10             	add    $0x10,%esp
593d57:	89 81 04 02 00 00    	mov    %eax,0x204(%ecx)
593d5d:	33 c0                	xor    %eax,%eax
593d5f:	8b 4e 7c             	mov    0x7c(%esi),%ecx
593d62:	5f                   	pop    %edi