550c9b:	83 c4 f8             	add    $0xfffffff8,%esp
550c9e:	dd 1c 24             	fstpl  (%esp)
550ca1:	d9 44 24 58          	flds   0x58(%esp)
550ca5:	83 c4 f8             	add    $0xfffffff8,%esp
550ca8:	dd 1c 24             	fstpl  (%esp)
550cab:	e8 c4 f3 ff ff       	call   0x550074
550cb0:	83 c4 34             	add    $0x34,%esp
550cb3:	5d                   	pop    %ebp
550cb4:	5f                   	pop    %edi
550cb5:	5e                   	pop    %esi
550cb6:	5b                   	pop    %ebx
550cb7:	c3                   	ret
550cb8:	55                   	push   %ebp
550cb9:	8b ec                	mov    %esp,%ebp
550cbb:	51                   	push   %ecx
550cbc:	53                   	push   %ebx
550cbd:	56                   	push   %esi
550cbe:	57                   	push   %edi
550cbf:	8b f9                	mov    %ecx,%edi
550cc1:	8b da                	mov    %edx,%ebx
550cc3:	8b f0                	mov    %eax,%esi
550cc5:	85 f6                	test   %esi,%esi
550cc7:	0f 84 b1 00 00 00    	je     0x550d7e
550ccd:	85 db                	test   %ebx,%ebx
550ccf:	0f 84 a9 00 00 00    	je     0x550d7e
550cd5:	85 ff                	test   %edi,%edi
550cd7:	0f 84 a1 00 00 00    	je     0x550d7e
550cdd:	8b 45 0c             	mov    0xc(%ebp),%eax
550ce0:	85 c0                	test   %eax,%eax
550ce2:	0f 84 96 00 00 00    	je     0x550d7e
550ce8:	57                   	push   %edi
550ce9:	e8 42 58 fd ff       	call   0x526530
550cee:	59                   	pop    %ecx
550cef:	8b d0                	mov    %eax,%edx
550cf1:	42                   	inc    %edx
550cf2:	8b c6                	mov    %esi,%eax
550cf4:	e8 fb 0d 00 00       	call   0x551af4
550cf9:	89 45 fc             	mov    %eax,-0x4(%ebp)
550cfc:	33 c0                	xor    %eax,%eax
550cfe:	8b 55 fc             	mov    -0x4(%ebp),%edx
550d01:	56                   	push   %esi
550d02:	57                   	push   %edi
550d03:	83 c9 ff             	or     $0xffffffff,%ecx
550d06:	f2 ae                	repnz scas %es:(%edi),%al
550d08:	f7 d1                	not    %ecx
550d0a:	2b f9                	sub    %ecx,%edi
550d0c:	8b f2                	mov    %edx,%esi
550d0e:	87 f7                	xchg   %esi,%edi
550d10:	8b d1                	mov    %ecx,%edx
550d12:	8b c7                	mov    %edi,%eax
550d14:	c1 e9 02             	shr    $0x2,%ecx
550d17:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
550d19:	8b ca                	mov    %edx,%ecx
550d1b:	83 e1 03             	and    $0x3,%ecx
550d1e:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
550d20:	5f                   	pop    %edi
550d21:	5e                   	pop    %esi
550d22:	8b c6                	mov    %esi,%eax
550d24:	8b 55 08             	mov    0x8(%ebp),%edx
550d27:	e8 c8 0d 00 00       	call   0x551af4
550d2c:	8b f8                	mov    %eax,%edi
550d2e:	8b 45 08             	mov    0x8(%ebp),%eax
550d31:	50                   	push   %eax
550d32:	8b 55 0c             	mov    0xc(%ebp),%edx
550d35:	52                   	push   %edx
550d36:	57                   	push   %edi
550d37:	e8 a4 56 fd ff       	call   0x5263e0
550d3c:	83 c4 0c             	add    $0xc,%esp
550d3f:	b9 10 00 00 00       	mov    $0x10,%ecx
550d44:	8b d3                	mov    %ebx,%edx
550d46:	8b c6                	mov    %esi,%eax
550d48:	6a 00                	push   $0x0
550d4a:	e8 d1 60 00 00       	call   0x556e20
550d4f:	8b 4d 08             	mov    0x8(%ebp),%ecx
550d52:	89 8b cc 00 00 00    	mov    %ecx,0xcc(%ebx)
550d58:	8b 45 fc             	mov    -0x4(%ebp),%eax
550d5b:	89 83 c4 00 00 00    	mov    %eax,0xc4(%ebx)
550d61:	89 bb c8 00 00 00    	mov    %edi,0xc8(%ebx)
550d67:	8a 55 10             	mov    0x10(%ebp),%dl
550d6a:	88 93 d0 00 00 00    	mov    %dl,0xd0(%ebx)
550d70:	83 8b b8 00 00 00 10 	orl    $0x10,0xb8(%ebx)
550d77:	81 4b 08 00 10 00 00 	orl    $0x1000,0x8(%ebx)
550d7e:	5f                   	pop    %edi
550d7f:	5e                   	pop    %esi
550d80:	5b                   	pop    %ebx
550d81:	59                   	pop    %ecx
550d82:	5d                   	pop    %ebp
550d83:	c2 0c 00             	ret    $0xc
550d86:	90                   	nop
550d87:	90                   	nop
550d88:	55                   	push   %ebp
550d89:	8b ec                	mov    %esp,%ebp
550d8b:	51                   	push   %ecx
550d8c:	53                   	push   %ebx
550d8d:	8b d8                	mov    %eax,%ebx
550d8f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
550d92:	8b 45 08             	mov    0x8(%ebp),%eax
550d95:	50                   	push   %eax
550d96:	8b c3                	mov    %ebx,%eax
550d98:	8b 4d fc             	mov    -0x4(%ebp),%ecx
550d9b:	e8 18 00 00 00       	call   0x550db8
550da0:	85 c0                	test   %eax,%eax
550da2:	74 0c                	je     0x550db0
550da4:	ba 0b c4 69 00       	mov    $0x69c40b,%edx
550da9:	8b c3                	mov    %ebx,%eax
550dab:	e8 9c 0e 00 00       	call   0x551c4c
550db0:	5b                   	pop    %ebx
550db1:	59                   	pop    %ecx
550db2:	5d                   	pop    %ebp
550db3:	c2 04 00             	ret    $0x4
550db6:	90                   	nop
550db7:	90                   	nop
550db8:	55                   	push   %ebp
550db9:	8b ec                	mov    %esp,%ebp
550dbb:	83 c4 e4             	add    $0xffffffe4,%esp
550dbe:	53                   	push   %ebx
550dbf:	56                   	push   %esi
550dc0:	57                   	push   %edi
550dc1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
550dc4:	8b fa                	mov    %edx,%edi
550dc6:	89 45 fc             	mov    %eax,-0x4(%ebp)
550dc9:	8b 45 fc             	mov    -0x4(%ebp),%eax
550dcc:	85 c0                	test   %eax,%eax
550dce:	74 0b                	je     0x550ddb
550dd0:	85 ff                	test   %edi,%edi
550dd2:	74 07                	je     0x550ddb
550dd4:	8b 55 08             	mov    0x8(%ebp),%edx
550dd7:	85 d2                	test   %edx,%edx
550dd9:	75 07                	jne    0x550de2
550ddb:	33 c0                	xor    %eax,%eax
550ddd:	e9 e1 01 00 00       	jmp    0x550fc3
550de2:	8b 57 30             	mov    0x30(%edi),%edx
550de5:	8b 4d 08             	mov    0x8(%ebp),%ecx
550de8:	03 d1                	add    %ecx,%edx
550dea:	8b 47 34             	mov    0x34(%edi),%eax
550ded:	3b c2                	cmp    %edx,%eax
550def:	0f 8d 94 00 00 00    	jge    0x550e89
550df5:	8b 4f 38             	mov    0x38(%edi),%ecx
550df8:	85 c9                	test   %ecx,%ecx
550dfa:	74 54                	je     0x550e50
550dfc:	8b f0                	mov    %eax,%esi
550dfe:	83 c2 08             	add    $0x8,%edx
550e01:	89 57 34             	mov    %edx,0x34(%edi)
550e04:	8b 5f 38             	mov    0x38(%edi),%ebx
550e07:	8b 57 34             	mov    0x34(%edi),%edx
550e0a:	c1 e2 04             	shl    $0x4,%edx
550e0d:	8b 45 fc             	mov    -0x4(%ebp),%eax
550e10:	e8 87 0d 00 00       	call   0x551b9c
550e15:	89 47 38             	mov    %eax,0x38(%edi)
550e18:	8b 4f 38             	mov    0x38(%edi),%ecx
550e1b:	85 c9                	test   %ecx,%ecx
550e1d:	75 14                	jne    0x550e33
550e1f:	8b d3                	mov    %ebx,%edx
550e21:	8b 45 fc             	mov    -0x4(%ebp),%eax
550e24:	e8 3f 0d 00 00       	call   0x551b68
550e29:	b8 01 00 00 00       	mov    $0x1,%eax
550e2e:	e9 90 01 00 00       	jmp    0x550fc3
550e33:	c1 e6 04             	shl    $0x4,%esi
550e36:	56                   	push   %esi
550e37:	53                   	push   %ebx
550e38:	8b 57 38             	mov    0x38(%edi),%edx
550e3b:	52                   	push   %edx
550e3c:	e8 9f 55 fd ff       	call   0x5263e0
550e41:	83 c4 0c             	add    $0xc,%esp
550e44:	8b d3                	mov    %ebx,%edx
550e46:	8b 45 fc             	mov    -0x4(%ebp),%eax
550e49:	e8 1a 0d 00 00       	call   0x551b68
550e4e:	eb 39                	jmp    0x550e89
550e50:	8b 4d 08             	mov    0x8(%ebp),%ecx
550e53:	33 c0                	xor    %eax,%eax
550e55:	83 c1 08             	add    $0x8,%ecx
550e58:	89 4f 34             	mov    %ecx,0x34(%edi)
550e5b:	89 47 30             	mov    %eax,0x30(%edi)
550e5e:	8b 57 34             	mov    0x34(%edi),%edx
550e61:	8b 45 fc             	mov    -0x4(%ebp),%eax
550e64:	c1 e2 04             	shl    $0x4,%edx
550e67:	e8 30 0d 00 00       	call   0x551b9c
550e6c:	8b d8                	mov    %eax,%ebx
550e6e:	89 5f 38             	mov    %ebx,0x38(%edi)
550e71:	85 db                	test   %ebx,%ebx
550e73:	75 0a                	jne    0x550e7f
550e75:	b8 01 00 00 00       	mov    $0x1,%eax
550e7a:	e9 44 01 00 00       	jmp    0x550fc3
550e7f:	81 8f b8 00 00 00 00 	orl    $0x4000,0xb8(%edi)
550e86:	40 00 00
550e89:	33 d2                	xor    %edx,%edx
550e8b:	89 55 f4             	mov    %edx,-0xc(%ebp)
550e8e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
550e91:	8b 55 08             	mov    0x8(%ebp),%edx
550e94:	8b 45 f4             	mov    -0xc(%ebp),%eax
550e97:	3b c2                	cmp    %edx,%eax
550e99:	8d 59 04             	lea    0x4(%ecx),%ebx
550e9c:	0f 8d 1f 01 00 00    	jge    0x550fc1
550ea2:	8b 77 38             	mov    0x38(%edi),%esi
550ea5:	8b 47 30             	mov    0x30(%edi),%eax
550ea8:	c1 e0 04             	shl    $0x4,%eax
550eab:	03 f0                	add    %eax,%esi
550ead:	8b 03                	mov    (%ebx),%eax
550eaf:	85 c0                	test   %eax,%eax
550eb1:	0f 84 f6 00 00 00    	je     0x550fad
550eb7:	50                   	push   %eax
550eb8:	e8 73 56 fd ff       	call   0x526530
550ebd:	59                   	pop    %ecx
550ebe:	89 45 ec             	mov    %eax,-0x14(%ebp)
550ec1:	8b 53 fc             	mov    -0x4(%ebx),%edx
550ec4:	85 d2                	test   %edx,%edx
550ec6:	7f 0c                	jg     0x550ed4
550ec8:	33 c9                	xor    %ecx,%ecx
550eca:	89 4d e8             	mov    %ecx,-0x18(%ebp)
550ecd:	33 c0                	xor    %eax,%eax
550ecf:	89 45 e4             	mov    %eax,-0x1c(%ebp)
550ed2:	eb 12                	jmp    0x550ee6
550ed4:	ba 2d c4 69 00       	mov    $0x69c42d,%edx
550ed9:	8b 45 fc             	mov    -0x4(%ebp),%eax
550edc:	e8 07 0e 00 00       	call   0x551ce8
550ee1:	e9 c7 00 00 00       	jmp    0x550fad
550ee6:	8b 43 04             	mov    0x4(%ebx),%eax
550ee9:	85 c0                	test   %eax,%eax
550eeb:	74 06                	je     0x550ef3
550eed:	8a 10                	mov    (%eax),%dl
550eef:	84 d2                	test   %dl,%dl
550ef1:	75 0d                	jne    0x550f00
550ef3:	33 c9                	xor    %ecx,%ecx
550ef5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
550ef8:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
550efe:	eb 12                	jmp    0x550f12
550f00:	8b 43 04             	mov    0x4(%ebx),%eax
550f03:	50                   	push   %eax
550f04:	e8 27 56 fd ff       	call   0x526530
550f09:	59                   	pop    %ecx
550f0a:	89 45 f0             	mov    %eax,-0x10(%ebp)
550f0d:	8b 53 fc             	mov    -0x4(%ebx),%edx
550f10:	89 16                	mov    %edx,(%esi)
550f12:	8b 55 ec             	mov    -0x14(%ebp),%edx
550f15:	8b 45 f0             	mov    -0x10(%ebp),%eax
550f18:	03 d0                	add    %eax,%edx
550f1a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
550f1d:	03 d1                	add    %ecx,%edx
550f1f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
550f22:	03 d0                	add    %eax,%edx
550f24:	8b 45 fc             	mov    -0x4(%ebp),%eax
550f27:	83 c2 04             	add    $0x4,%edx
550f2a:	e8 6d 0c 00 00       	call   0x551b9c
550f2f:	89 46 04             	mov    %eax,0x4(%esi)
550f32:	8b 56 04             	mov    0x4(%esi),%edx
550f35:	85 d2                	test   %edx,%edx
550f37:	75 0a                	jne    0x550f43
550f39:	b8 01 00 00 00       	mov    $0x1,%eax
550f3e:	e9 80 00 00 00       	jmp    0x550fc3
550f43:	8b 55 ec             	mov    -0x14(%ebp),%edx
550f46:	52                   	push   %edx
550f47:	8b 0b                	mov    (%ebx),%ecx
550f49:	51                   	push   %ecx
550f4a:	8b 46 04             	mov    0x4(%esi),%eax
550f4d:	50                   	push   %eax
550f4e:	e8 8d 54 fd ff       	call   0x5263e0
550f53:	8b 46 04             	mov    0x4(%esi),%eax
550f56:	8b 55 ec             	mov    -0x14(%ebp),%edx
550f59:	83 c4 0c             	add    $0xc,%esp
550f5c:	c6 04 10 00          	movb   $0x0,(%eax,%edx,1)
550f60:	8b d0                	mov    %eax,%edx
550f62:	8b 45 ec             	mov    -0x14(%ebp),%eax
550f65:	03 d0                	add    %eax,%edx
550f67:	42                   	inc    %edx
550f68:	89 56 08             	mov    %edx,0x8(%esi)
550f6b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
550f6e:	85 c9                	test   %ecx,%ecx
550f70:	74 11                	je     0x550f83
550f72:	8b 45 f0             	mov    -0x10(%ebp),%eax
550f75:	50                   	push   %eax
550f76:	8b 4b 04             	mov    0x4(%ebx),%ecx
550f79:	51                   	push   %ecx
550f7a:	52                   	push   %edx
550f7b:	e8 60 54 fd ff       	call   0x5263e0
550f80:	83 c4 0c             	add    $0xc,%esp
550f83:	8b 56 08             	mov    0x8(%esi),%edx
550f86:	8b 45 f0             	mov    -0x10(%ebp),%eax
550f89:	c6 04 02 00          	movb   $0x0,(%edx,%eax,1)
550f8d:	8b 55 f0             	mov    -0x10(%ebp),%edx
550f90:	89 56 0c             	mov    %edx,0xc(%esi)
550f93:	8b 4f 30             	mov    0x30(%edi),%ecx
550f96:	c1 e1 04             	shl    $0x4,%ecx
550f99:	8b 47 38             	mov    0x38(%edi),%eax
550f9c:	56                   	push   %esi
550f9d:	57                   	push   %edi
550f9e:	8d 3c 08             	lea    (%eax,%ecx,1),%edi
550fa1:	b9 04 00 00 00       	mov    $0x4,%ecx
550fa6:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
550fa8:	5f                   	pop    %edi
550fa9:	5e                   	pop    %esi
550faa:	ff 47 30             	incl   0x30(%edi)
550fad:	ff 45 f4             	incl   -0xc(%ebp)
550fb0:	83 c3 10             	add    $0x10,%ebx
550fb3:	8b 45 f4             	mov    -0xc(%ebp),%eax
550fb6:	8b 55 08             	mov    0x8(%ebp),%edx
550fb9:	3b c2                	cmp    %edx,%eax
550fbb:	0f 8c e1 fe ff ff    	jl     0x550ea2
550fc1:	33 c0                	xor    %eax,%eax
550fc3:	5f                   	pop    %edi
550fc4:	5e                   	pop    %esi
550fc5:	5b                   	pop    %ebx
550fc6:	8b e5                	mov    %ebp,%esp
550fc8:	5d                   	pop    %ebp
550fc9:	c2 04 00             	ret    $0x4
550fcc:	53                   	push   %ebx
550fcd:	8b da                	mov    %edx,%ebx
550fcf:	85 c0                	test   %eax,%eax
550fd1:	74 20                	je     0x550ff3
550fd3:	85 db                	test   %ebx,%ebx
550fd5:	74 1c                	je     0x550ff3
550fd7:	f6 40 29 02          	testb  $0x2,0x29(%eax)
550fdb:	75 16                	jne    0x550ff3
550fdd:	6a 08                	push   $0x8
550fdf:	51                   	push   %ecx
550fe0:	8d 43 3c             	lea    0x3c(%ebx),%eax
550fe3:	50                   	push   %eax
550fe4:	e8 f7 53 fd ff       	call   0x5263e0
550fe9:	83 c4 0c             	add    $0xc,%esp
550fec:	81 4b 08 00 02 00 00 	orl    $0x200,0x8(%ebx)
550ff3:	5b                   	pop    %ebx
550ff4:	c3                   	ret
550ff5:	90                   	nop
550ff6:	90                   	nop
550ff7:	90                   	nop
550ff8:	55                   	push   %ebp
550ff9:	8b ec                	mov    %esp,%ebp
550ffb:	51                   	push   %ecx
550ffc:	53                   	push   %ebx
550ffd:	56                   	push   %esi
550ffe:	57                   	push   %edi
550fff:	89 4d fc             	mov    %ecx,-0x4(%ebp)
551002:	8b da                	mov    %edx,%ebx
551004:	8b f0                	mov    %eax,%esi
551006:	8b 7d 0c             	mov    0xc(%ebp),%edi
551009:	85 f6                	test   %esi,%esi
55100b:	74 75                	je     0x551082
55100d:	85 db                	test   %ebx,%ebx
55100f:	74 71                	je     0x551082
551011:	8b 45 fc             	mov    -0x4(%ebp),%eax
551014:	85 c0                	test   %eax,%eax
551016:	74 40                	je     0x551058
551018:	6a 00                	push   $0x0
55101a:	b9 00 20 00 00       	mov    $0x2000,%ecx
55101f:	8b d3                	mov    %ebx,%edx
551021:	8b c6                	mov    %esi,%eax
551023:	e8 f8 5d 00 00       	call   0x556e20
551028:	ba 00 01 00 00       	mov    $0x100,%edx
55102d:	8b c6                	mov    %esi,%eax
55102f:	e8 c0 0a 00 00       	call   0x551af4
551034:	89 43 4c             	mov    %eax,0x4c(%ebx)