51488c:	e8 ef 39 02 00       	call   0x538280
514891:	83 c4 08             	add    $0x8,%esp
514894:	85 c0                	test   %eax,%eax
514896:	0f 85 42 03 00 00    	jne    0x514bde
51489c:	f7 47 04 00 00 01 00 	testl  $0x10000,0x4(%edi)
5148a3:	74 13                	je     0x5148b8
5148a5:	8b 47 20             	mov    0x20(%edi),%eax
5148a8:	8b 48 1c             	mov    0x1c(%eax),%ecx
5148ab:	8b 47 30             	mov    0x30(%edi),%eax
5148ae:	89 41 30             	mov    %eax,0x30(%ecx)
5148b1:	c7 47 30 00 00 00 00 	movl   $0x0,0x30(%edi)
5148b8:	8b 47 20             	mov    0x20(%edi),%eax
5148bb:	33 c9                	xor    %ecx,%ecx
5148bd:	89 4d ac             	mov    %ecx,-0x54(%ebp)
5148c0:	39 08                	cmp    %ecx,(%eax)
5148c2:	0f 8e e2 00 00 00    	jle    0x5149aa
5148c8:	33 d2                	xor    %edx,%edx
5148ca:	89 55 a8             	mov    %edx,-0x58(%ebp)
5148cd:	0f 1f 00             	nopl   (%eax)
5148d0:	8b 5f 20             	mov    0x20(%edi),%ebx
5148d3:	03 da                	add    %edx,%ebx
5148d5:	8b 43 1c             	mov    0x1c(%ebx),%eax
5148d8:	85 c0                	test   %eax,%eax
5148da:	0f 84 b2 00 00 00    	je     0x514992
5148e0:	f6 40 04 04          	testb  $0x4,0x4(%eax)
5148e4:	0f 85 a8 00 00 00    	jne    0x514992
5148ea:	8b 4d bc             	mov    -0x44(%ebp),%ecx
5148ed:	33 f6                	xor    %esi,%esi
5148ef:	8b 55 b8             	mov    -0x48(%ebp),%edx
5148f2:	8b 81 f0 00 00 00    	mov    0xf0(%ecx),%eax
5148f8:	89 45 b0             	mov    %eax,-0x50(%ebp)
5148fb:	8b c2                	mov    %edx,%eax
5148fd:	85 d2                	test   %edx,%edx
5148ff:	74 0a                	je     0x51490b
514901:	03 70 10             	add    0x10(%eax),%esi
514904:	8b 40 0c             	mov    0xc(%eax),%eax
514907:	85 c0                	test   %eax,%eax
514909:	75 f6                	jne    0x514901
51490b:	8b 43 10             	mov    0x10(%ebx),%eax
51490e:	85 c0                	test   %eax,%eax
514910:	74 06                	je     0x514918
514912:	89 81 f0 00 00 00    	mov    %eax,0xf0(%ecx)
514918:	ff 73 1c             	push   0x1c(%ebx)
51491b:	8d 45 c0             	lea    -0x40(%ebp),%eax
51491e:	c7 45 c4 d0 3c 51 00 	movl   $0x513cd0,-0x3c(%ebp)
514925:	50                   	push   %eax
514926:	c7 45 c8 e0 47 51 00 	movl   $0x5147e0,-0x38(%ebp)
51492d:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
514934:	89 4d c0             	mov    %ecx,-0x40(%ebp)
514937:	89 55 d8             	mov    %edx,-0x28(%ebp)
51493a:	e8 b1 b4 03 00       	call   0x54fdf0
51493f:	8b 4d bc             	mov    -0x44(%ebp),%ecx
514942:	83 c4 08             	add    $0x8,%esp
514945:	8b 45 b0             	mov    -0x50(%ebp),%eax
514948:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
51494c:	89 81 f0 00 00 00    	mov    %eax,0xf0(%ecx)
514952:	0f 85 86 02 00 00    	jne    0x514bde
514958:	8b 45 a4             	mov    -0x5c(%ebp),%eax
51495b:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
51495f:	0f 85 79 02 00 00    	jne    0x514bde
514965:	8b 4d b8             	mov    -0x48(%ebp),%ecx
514968:	8b c1                	mov    %ecx,%eax
51496a:	85 c9                	test   %ecx,%ecx
51496c:	74 0c                	je     0x51497a
51496e:	66 90                	xchg   %ax,%ax
514970:	2b 70 10             	sub    0x10(%eax),%esi
514973:	8b 40 0c             	mov    0xc(%eax),%eax
514976:	85 c0                	test   %eax,%eax
514978:	75 f6                	jne    0x514970
51497a:	8b 43 30             	mov    0x30(%ebx),%eax
51497d:	f7 de                	neg    %esi
51497f:	8b 4d ac             	mov    -0x54(%ebp),%ecx
514982:	8b 55 a8             	mov    -0x58(%ebp),%edx
514985:	1b f6                	sbb    %esi,%esi
514987:	83 e6 08             	and    $0x8,%esi
51498a:	83 e0 f7             	and    $0xfffffff7,%eax
51498d:	0b f0                	or     %eax,%esi
51498f:	89 73 30             	mov    %esi,0x30(%ebx)
514992:	8b 47 20             	mov    0x20(%edi),%eax
514995:	41                   	inc    %ecx
514996:	83 c2 48             	add    $0x48,%edx
514999:	89 4d ac             	mov    %ecx,-0x54(%ebp)
51499c:	89 55 a8             	mov    %edx,-0x58(%ebp)
51499f:	3b 08                	cmp    (%eax),%ecx
5149a1:	0f 8c 29 ff ff ff    	jl     0x5148d0
5149a7:	8b 5d bc             	mov    -0x44(%ebp),%ebx
5149aa:	c7 45 f4 01 40 00 00 	movl   $0x4001,-0xc(%ebp)
5149b1:	8b 47 20             	mov    0x20(%edi),%eax
5149b4:	89 45 e0             	mov    %eax,-0x20(%ebp)
5149b7:	8b 45 b8             	mov    -0x48(%ebp),%eax
5149ba:	89 45 e8             	mov    %eax,-0x18(%ebp)
5149bd:	8d 45 dc             	lea    -0x24(%ebp),%eax
5149c0:	ff 77 1c             	push   0x1c(%edi)
5149c3:	50                   	push   %eax
5149c4:	e8 a7 37 02 00       	call   0x538170
5149c9:	83 c4 08             	add    $0x8,%esp
5149cc:	85 c0                	test   %eax,%eax
5149ce:	0f 85 0a 02 00 00    	jne    0x514bde
5149d4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5149d7:	81 e1 ff bf ff ff    	and    $0xffffbfff,%ecx
5149dd:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5149e0:	8b 77 28             	mov    0x28(%edi),%esi
5149e3:	89 75 b0             	mov    %esi,-0x50(%ebp)
5149e6:	85 f6                	test   %esi,%esi
5149e8:	75 0d                	jne    0x5149f7
5149ea:	f6 c1 10             	test   $0x10,%cl
5149ed:	75 08                	jne    0x5149f7
5149ef:	83 e1 fe             	and    $0xfffffffe,%ecx
5149f2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5149f5:	eb 0f                	jmp    0x514a06
5149f7:	81 e1 00 10 00 00    	and    $0x1000,%ecx
5149fd:	83 c9 08             	or     $0x8,%ecx
514a00:	09 4f 04             	or     %ecx,0x4(%edi)
514a03:	8b 4d f4             	mov    -0xc(%ebp),%ecx
514a06:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
514a0a:	74 08                	je     0x514a14
514a0c:	85 f6                	test   %esi,%esi
514a0e:	0f 84 bc 01 00 00    	je     0x514bd0
514a14:	8b 47 1c             	mov    0x1c(%edi),%eax
514a17:	81 c9 80 00 00 00    	or     $0x80,%ecx
514a1d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
514a20:	8d 45 dc             	lea    -0x24(%ebp),%eax
514a23:	89 4d f4             	mov    %ecx,-0xc(%ebp)
514a26:	ff 77 2c             	push   0x2c(%edi)
514a29:	50                   	push   %eax
514a2a:	e8 51 38 02 00       	call   0x538280
514a2f:	83 c4 08             	add    $0x8,%esp
514a32:	85 c0                	test   %eax,%eax
514a34:	0f 85 a4 01 00 00    	jne    0x514bde
514a3a:	ff 77 24             	push   0x24(%edi)
514a3d:	8d 45 dc             	lea    -0x24(%ebp),%eax
514a40:	50                   	push   %eax
514a41:	e8 3a 38 02 00       	call   0x538280
514a46:	83 c4 08             	add    $0x8,%esp
514a49:	85 c0                	test   %eax,%eax
514a4b:	0f 85 8d 01 00 00    	jne    0x514bde
514a51:	8b 47 20             	mov    0x20(%edi),%eax
514a54:	33 db                	xor    %ebx,%ebx
514a56:	39 18                	cmp    %ebx,(%eax)
514a58:	7e 36                	jle    0x514a90
514a5a:	33 f6                	xor    %esi,%esi
514a5c:	0f 1f 40 00          	nopl   0x0(%eax)
514a60:	8b 47 20             	mov    0x20(%edi),%eax
514a63:	f6 44 06 30 04       	testb  $0x4,0x30(%esi,%eax,1)
514a68:	74 18                	je     0x514a82
514a6a:	ff 74 06 48          	push   0x48(%esi,%eax,1)
514a6e:	8d 45 dc             	lea    -0x24(%ebp),%eax
514a71:	50                   	push   %eax
514a72:	e8 f9 36 02 00       	call   0x538170
514a77:	83 c4 08             	add    $0x8,%esp
514a7a:	85 c0                	test   %eax,%eax
514a7c:	0f 85 5c 01 00 00    	jne    0x514bde
514a82:	8b 47 20             	mov    0x20(%edi),%eax
514a85:	43                   	inc    %ebx
514a86:	83 c6 48             	add    $0x48,%esi
514a89:	3b 18                	cmp    (%eax),%ebx
514a8b:	7c d3                	jl     0x514a60
514a8d:	8b 75 b0             	mov    -0x50(%ebp),%esi
514a90:	81 4d f4 01 40 00 00 	orl    $0x4001,-0xc(%ebp)
514a97:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
514a9e:	f7 47 04 00 00 01 00 	testl  $0x10000,0x4(%edi)
514aa5:	74 13                	je     0x514aba
514aa7:	8b 47 20             	mov    0x20(%edi),%eax
514aaa:	8b 48 1c             	mov    0x1c(%eax),%ecx
514aad:	8b 41 30             	mov    0x30(%ecx),%eax
514ab0:	89 47 30             	mov    %eax,0x30(%edi)
514ab3:	c7 41 30 00 00 00 00 	movl   $0x0,0x30(%ecx)
514aba:	8b 45 a0             	mov    -0x60(%ebp),%eax
514abd:	3b 45 b4             	cmp    -0x4c(%ebp),%eax
514ac0:	7f 1d                	jg     0x514adf
514ac2:	68 58 8f 6b 00       	push   $0x6b8f58
514ac7:	ff 77 30             	push   0x30(%edi)
514aca:	8d 45 dc             	lea    -0x24(%ebp),%eax
514acd:	57                   	push   %edi
514ace:	50                   	push   %eax
514acf:	e8 ac f9 ff ff       	call   0x514480
514ad4:	83 c4 10             	add    $0x10,%esp
514ad7:	85 c0                	test   %eax,%eax
514ad9:	0f 85 ff 00 00 00    	jne    0x514bde
514adf:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
514ae2:	80 7b 51 00          	cmpb   $0x0,0x51(%ebx)
514ae6:	0f 85 f2 00 00 00    	jne    0x514bde
514aec:	81 65 f4 ff bf ff ff 	andl   $0xffffbfff,-0xc(%ebp)
514af3:	85 f6                	test   %esi,%esi
514af5:	74 4d                	je     0x514b44
514af7:	68 ec 8f 6b 00       	push   $0x6b8fec
514afc:	56                   	push   %esi
514afd:	8d 45 dc             	lea    -0x24(%ebp),%eax
514b00:	57                   	push   %edi
514b01:	50                   	push   %eax
514b02:	e8 79 f9 ff ff       	call   0x514480
514b07:	83 c4 10             	add    $0x10,%esp
514b0a:	85 c0                	test   %eax,%eax
514b0c:	0f 85 cc 00 00 00    	jne    0x514bde
514b12:	38 43 51             	cmp    %al,0x51(%ebx)
514b15:	0f 85 c3 00 00 00    	jne    0x514bde
514b1b:	8d 4e 04             	lea    0x4(%esi),%ecx
514b1e:	33 d2                	xor    %edx,%edx
514b20:	8b 36                	mov    (%esi),%esi
514b22:	85 f6                	test   %esi,%esi
514b24:	7e 1e                	jle    0x514b44
514b26:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
514b2d:	00 00 00
514b30:	8b 01                	mov    (%ecx),%eax
514b32:	f6 40 04 10          	testb  $0x10,0x4(%eax)
514b36:	0f 85 b8 00 00 00    	jne    0x514bf4
514b3c:	42                   	inc    %edx
514b3d:	83 c1 14             	add    $0x14,%ecx
514b40:	3b d6                	cmp    %esi,%edx
514b42:	7c ec                	jl     0x514b30
514b44:	8b 5d bc             	mov    -0x44(%ebp),%ebx
514b47:	80 bb c8 00 00 00 02 	cmpb   $0x2,0xc8(%ebx)
514b4e:	72 34                	jb     0x514b84
514b50:	8b 77 48             	mov    0x48(%edi),%esi
514b53:	85 f6                	test   %esi,%esi
514b55:	74 2d                	je     0x514b84
514b57:	ff 76 0c             	push   0xc(%esi)
514b5a:	8d 45 dc             	lea    -0x24(%ebp),%eax
514b5d:	50                   	push   %eax
514b5e:	e8 0d 36 02 00       	call   0x538170
514b63:	83 c4 08             	add    $0x8,%esp
514b66:	85 c0                	test   %eax,%eax
514b68:	75 74                	jne    0x514bde
514b6a:	ff 76 08             	push   0x8(%esi)
514b6d:	8d 45 dc             	lea    -0x24(%ebp),%eax
514b70:	50                   	push   %eax
514b71:	e8 fa 35 02 00       	call   0x538170
514b76:	83 c4 08             	add    $0x8,%esp
514b79:	85 c0                	test   %eax,%eax
514b7b:	75 61                	jne    0x514bde
514b7d:	8b 76 24             	mov    0x24(%esi),%esi
514b80:	85 f6                	test   %esi,%esi
514b82:	75 d3                	jne    0x514b57
514b84:	8b 4f 38             	mov    0x38(%edi),%ecx
514b87:	85 c9                	test   %ecx,%ecx
514b89:	74 0c                	je     0x514b97
514b8b:	8b 47 1c             	mov    0x1c(%edi),%eax
514b8e:	8b 49 1c             	mov    0x1c(%ecx),%ecx
514b91:	8b 00                	mov    (%eax),%eax
514b93:	3b 01                	cmp    (%ecx),%eax
514b95:	75 67                	jne    0x514bfe
514b97:	8b 7f 34             	mov    0x34(%edi),%edi
514b9a:	ff 45 b4             	incl   -0x4c(%ebp)
514b9d:	85 ff                	test   %edi,%edi
514b9f:	0f 85 cb fc ff ff    	jne    0x514870
514ba5:	39 7d 9c             	cmp    %edi,-0x64(%ebp)
514ba8:	74 10                	je     0x514bba
514baa:	ff 75 98             	push   -0x68(%ebp)
514bad:	53                   	push   %ebx
514bae:	e8 0d ee ff ff       	call   0x5139c0
514bb3:	83 c4 08             	add    $0x8,%esp
514bb6:	85 c0                	test   %eax,%eax
514bb8:	75 24                	jne    0x514bde
514bba:	5e                   	pop    %esi
514bbb:	5b                   	pop    %ebx
514bbc:	b8 01 00 00 00       	mov    $0x1,%eax
514bc1:	5f                   	pop    %edi
514bc2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
514bc5:	33 cd                	xor    %ebp,%ecx
514bc7:	e8 0e c9 0c 00       	call   0x5e14da
514bcc:	8b e5                	mov    %ebp,%esp
514bce:	5d                   	pop    %ebp
514bcf:	c3                   	ret
514bd0:	68 c0 8f 6b 00       	push   $0x6b8fc0
514bd5:	53                   	push   %ebx
514bd6:	e8 85 e6 00 00       	call   0x523260
514bdb:	83 c4 08             	add    $0x8,%esp
514bde:	b8 02 00 00 00       	mov    $0x2,%eax
514be3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
514be6:	5e                   	pop    %esi
514be7:	5b                   	pop    %ebx
514be8:	33 cd                	xor    %ebp,%ecx
514bea:	5f                   	pop    %edi
514beb:	e8 ea c8 0c 00       	call   0x5e14da
514bf0:	8b e5                	mov    %ebp,%esp
514bf2:	5d                   	pop    %ebp
514bf3:	c3                   	ret
514bf4:	68 f4 8f 6b 00       	push   $0x6b8ff4
514bf9:	ff 75 bc             	push   -0x44(%ebp)
514bfc:	eb d8                	jmp    0x514bd6
514bfe:	ff 77 38             	push   0x38(%edi)
514c01:	53                   	push   %ebx
514c02:	e8 09 7c 02 00       	call   0x53c810
514c07:	eb d2                	jmp    0x514bdb
514c09:	cc                   	int3
514c0a:	cc                   	int3
514c0b:	cc                   	int3
514c0c:	cc                   	int3
514c0d:	cc                   	int3
514c0e:	cc                   	int3
514c0f:	cc                   	int3
514c10:	55                   	push   %ebp
514c11:	8b ec                	mov    %esp,%ebp
514c13:	56                   	push   %esi
514c14:	8b 75 08             	mov    0x8(%ebp),%esi
514c17:	6a 00                	push   $0x0
514c19:	6a 08                	push   $0x8
514c1b:	ff 36                	push   (%esi)
514c1d:	e8 be c7 00 00       	call   0x5213e0
514c22:	83 c4 0c             	add    $0xc,%esp
514c25:	85 c0                	test   %eax,%eax
514c27:	74 0b                	je     0x514c34
514c29:	8b 4d 0c             	mov    0xc(%ebp),%ecx
514c2c:	89 08                	mov    %ecx,(%eax)
514c2e:	8b 4d 10             	mov    0x10(%ebp),%ecx
514c31:	89 48 04             	mov    %ecx,0x4(%eax)
514c34:	6a f2                	push   $0xfffffff2
514c36:	50                   	push   %eax
514c37:	6a 00                	push   $0x0
514c39:	6a 01                	push   $0x1
514c3b:	6a 00                	push   $0x0
514c3d:	6a 46                	push   $0x46
514c3f:	56                   	push   %esi
514c40:	e8 4b cf 02 00       	call   0x541b90
514c45:	8b 4e 6c             	mov    0x6c(%esi),%ecx
514c48:	83 c4 1c             	add    $0x1c,%esp
514c4b:	39 4e 70             	cmp    %ecx,0x70(%esi)
514c4e:	7f 14                	jg     0x514c64
514c50:	6a 00                	push   $0x0
514c52:	6a 01                	push   $0x1
514c54:	6a 01                	push   $0x1
514c56:	6a 50                	push   $0x50
514c58:	56                   	push   %esi
514c59:	e8 a2 18 ff ff       	call   0x506500
514c5e:	83 c4 14             	add    $0x14,%esp
514c61:	5e                   	pop    %esi
514c62:	5d                   	pop    %ebp
514c63:	c3                   	ret
514c64:	8d 41 01             	lea    0x1(%ecx),%eax
514c67:	89 46 6c             	mov    %eax,0x6c(%esi)
514c6a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
514c6d:	8b 46 68             	mov    0x68(%esi),%eax
514c70:	5e                   	pop    %esi
514c71:	c7 04 88 50 00 00 00 	movl   $0x50,(%eax,%ecx,4)
514c78:	c7 44 88 04 01 00 00 	movl   $0x1,0x4(%eax,%ecx,4)
514c7f:	00
514c80:	c7 44 88 08 01 00 00 	movl   $0x1,0x8(%eax,%ecx,4)
514c87:	00
514c88:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
514c8f:	00
514c90:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
514c97:	00
514c98:	5d                   	pop    %ebp
514c99:	c3                   	ret
514c9a:	cc                   	int3
514c9b:	cc                   	int3
514c9c:	cc                   	int3
514c9d:	cc                   	int3
514c9e:	cc                   	int3
514c9f:	cc                   	int3